Article View: pl.comp.lang.delphi.bazy-danych
Article #82713Kopiowanie , prośba o podpowiedź - kopiowanie pól z dbgrid
From: lordbz
Date: Sun, 29 Jan 2017 18:44
Date: Sun, 29 Jan 2017 18:44
59 lines
3829 bytes
3829 bytes
Witam
Założenie jest następujące. Na serwerze jest w bazie MSSQL tabela. User łączy się z tabelą.
Wszystko działa, jest połączenie, w dbgrid1 pojawia się pusta tabela np. grupy.
Następnie otwiera sobie tabelę w dbgrid2 z lokalnego hdd o takiej samej nazwie i takiej samej strukturze ale wypełnionej danymi.
Teraz chodzi o to żeby po kliknięciu przekopiować (koniecznie z tabeli z danym ) do tabeli na serwerze dane ale chciałbym zrobić to wędrując po polach DBGrid2.
Teraz kod i prośba o podpowiedź bo nie bardzo wiem co robię żle.
////
procedure TForm1.Button7Click(Sender: TObject);
var x : integer;
begin
ADOQuery3.Connection:= AdoConnection1;
AdoQuery3.SQL.Clear;
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do
begin
for x:=0 to DBGrid2.DataSource.DataSet.Fields.Count -1 do
begin
ADOQuery3.SQL.Add('INSERT INTO grupy (GRUPA, NAZWA, RODZAJ, W_OPALOWA, STAWKA_A) VALUES (:grupa, :nazwa, :rodzaj, :w_opalowa, :stawka_a)'); // + DataSource1.DataSet.Fields[x].AsString );
begin
ADOQuery3.Parameters.ParamByName('GRUPA').Value:= DBGrid2.DataSource.DataSet.Fields[x].AsString;
ADOQuery3.Parameters.ParamByName('NAZWA').Value:= DBGrid2.DataSource.DataSet.Fields[x].AsString;
ADOQuery3.Parameters.ParamByName('RODZAJ').Value:= DBGrid2.DataSource.DataSet.Fields[x].AsString;
ADOQuery3.Parameters.ParamByName('W_OPALOWA').Value:= DBGrid2.DataSource.DataSet.Fields[x].AsFloat;
ADOQuery3.Parameters.ParamByName('STAWKA_A').Value:= DBGrid2.DataSource.DataSet.Fields[x].AsFloat;
end;
ADOQuery3.ExecSQL;
DBGrid2.DataSource.DataSet.Next;
end;
end;
kod prościutki niestetynie działa i nie mam pomysłu
zamiast kodu między begin ....end dałem:
AdoQuery3.Parameters.ParamByName('GRUPA').Value:= DBGrid2.DataSource.DataSet.FieldByName('grupa').AsString;
AdoQuery3.Parameters.ParamByName('NAZWA').Value:= DBGrid2.DataSource.DataSet.FieldByName('nazwa').AsString;
AdoQuery3.Parameters.ParamByName('RODZAJ').Value:= DBGrid2.DataSource.DataSet.FieldByName('rodzaj').AsString;
AdoQuery3.Parameters.ParamByName('W_OPALOWA').Value:= DBGrid2.DataSource.DataSet.FieldByName('w_opalowa').AsFloat;
AdoQuery3.Parameters.ParamByName('STAWKA_A').Value:= DBGrid2.DataSource.DataSet.FieldByName('stawka_a').AsFloat;
i to działa - tylko dla pierwszego rekoru - to zresztą zrozumiałe. Gdzieś by tu wpleść x Proszę o jakąś podpowiedź, gdzie robię błąd.
Prosze o wyrozumiałość i podpowiedź , nie oczekuję gotowca
pozdrawiam
Przemek
Technical Details
Message-ID:
<4f0ed382-541b-47ba-8b98-a5d18bcd269e@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r185no1146872ita.0!news-out.google.com!15ni25401itm.0!nntp.google.com!r185no1146869ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 10.99.157.2 with SMTP id i2mr5331524pgd.78.1485715486363; Sun, 29 Jan 2017 10:44:46 -0800 (PST) X-Received: by 10.157.62.29 with SMTP id a29mr1346163otd.5.1485715486313; Sun, 29 Jan 2017 10:44:46 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!r185no1146872ita.0!news-out.google.com!15ni25401itm.0!nntp.google.com!r185no1146869ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi.bazy-danych Date: Sun, 29 Jan 2017 10:44:46 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.76.108.156; posting-account=7n8jYQoAAAD8CMBk_0SEIjdWdfp4EnSW NNTP-Posting-Host: 46.76.108.156 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <4f0ed382-541b-47ba-8b98-a5d18bcd269e@googlegroups.com> Subject: Kopiowanie , prośba o podpowiedź - kopiowanie pól z dbgrid From: lordbz <lordbz@gmail.com> Injection-Date: Sun, 29 Jan 2017 18:44:46 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit