🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82713

Kopiowanie , prośba o podpowiedź - kopiowanie pól z dbgrid

#82713
From: lordbz
Date: Sun, 29 Jan 2017 18:44
59 lines
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-mail

Show 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