Article View: pl.comp.lang.delphi.bazy-danych
Article #82718Re: Kopiowanie , prośba o podpowiedź - kopiowanie pól z dbgrid
From: lordbz
Date: Wed, 01 Feb 2017 13:06
Date: Wed, 01 Feb 2017 13:06
54 lines
4281 bytes
4281 bytes
Miab, Zenon - dzięki - podam teraz kod który działa ale najpierw przypomnę założenie.
1-user połączył się z MSSQL - tam ma pusta tabelkę (zrobione)
2-user otwiera sobie plik dbf (db itp) lokalnie w DBGRid2 (zrobione)
3-naciśnięcie klawisza - przekopiowanie pól z DBGrid2 do tabeli na serwerze
KOD który działa:
procedure TForm1.Button9Click(Sender: TObject);
var z : integer;
g,n,r,w,s : string;
begin
ADOQuery3.Connection:= AdoConnection1;
AdoQuery3.SQL.Clear;
DBGrid2.DataSource.DataSet.First;
while not DBGrid2.DataSource.DataSet.Eof do // przejście po wszystkich rekordach tabeli
// for z:=0 to DBGrid2.DataSource.DataSet.Fields.Count -1 do
begin
g:= DBGrid2.DataSource.DataSet.FieldByName('grupa').AsString;
n:= DBGrid2.DataSource.DataSet.FieldByName('nazwa').AsString;
r:= DBGrid2.DataSource.DataSet.FieldByName('rodzaj').AsString;
w:= DBGrid2.DataSource.DataSet.FieldByName('w_opalowa').Value; //.AsVariant;
s:= DBGrid2.DataSource.DataSet.FieldByName('stawka_a').Value;// AsVariant;
ADOQuery3.SQL.Add('INSERT INTO grupy (GRUPA, NAZWA, RODZAJ, W_OPALOWA, STAWKA_A) VALUES (''' + g + ''',''' + n + ''',''' + r + ''',''' + w + ''',''' + s + ''')');
DBGrid2.DataSource.DataSet.Next;
end;
ADOQuery3.ExecSQL;
end;
KONIEC KODU
Ładuję go bo wdzięczny będę za uwagi bo sam mam uwagi:
1- pętla {for z:=0 to DBGrid2.DataSource.DataSet.Fields.Count -1 do} jest wyłączona tu niczemu nie służy a wrecz przeszkadza bo dubluje ostatni rekord lub dodaje pusty
2 - fragment kodu
{ g:= DBGrid2.DataSource.DataSet.FieldByName('grupa').AsString;
n:= DBGrid2.DataSource.DataSet.FieldByName('nazwa').AsString;
r:= DBGrid2.DataSource.DataSet.FieldByName('rodzaj').AsString;
w:= DBGrid2.DataSource.DataSet.FieldByName('w_opalowa').Value; //.AsVariant;
s:= DBGrid2.DataSource.DataSet.FieldByName('stawka_a').Value;// AsVariant;
ADOQuery3.SQL.Add('INSERT INTO grupy (GRUPA, NAZWA, RODZAJ, W_OPALOWA, STAWKA_A) VALUES (''' + g + ''',''' + n + ''',''' + r + ''',''' + w + ''',''' + s + ''')');
}
jest wg mnie no nie wiem ... nieprofesjonalny.Bo co będzie haj plik (tutaj grupy to pięć pól, pięć kolumn) będzie miał np 25 kolumn ? Będę musiał definiować tyle zmiennych i linia za "values" będie długa i głupia - to się chore robi.
3 - reasumując kod jest do poprawki
Daję cały bo może komuś się przyda a dodatkowo uważam że na tym to polega (teraz ktoś mnie zjedzie , coś podpowie, da kawałek i problem rozwiązany). Ponadto przeszukałem grupę i dokładnie takiego (rozwiązanego) problemu nie ma - zaznaczam lecimy po DBGrid.
Proszę o uwagi
Dzięki
Przemek
Technical Details
Message-ID:
<d0312858-627e-46e0-9c41-6ceada7756df@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!r185no179626ita.0!news-out.google.com!78ni3329itm.0!nntp.google.com!r185no183976ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<4f0ed382-541b-47ba-8b98-a5d18bcd269e@googlegroups.com> <o6lqs9$kn0$1@node2.news.atman.pl> <813fa353-f246-4b33-8c1f-d12a0dff7841@googlegroups.com> <o6nsnk$p54$1@node1.news.atman.pl> <58919a3e$0$15192$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 10.36.73.157 with SMTP id e29mr6998423itd.4.1485954419262; Wed, 01 Feb 2017 05:06:59 -0800 (PST) X-Received: by 10.157.8.10 with SMTP id 10mr252236oty.19.1485954419219; Wed, 01 Feb 2017 05:06:59 -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!r185no179626ita.0!news-out.google.com!78ni3329itm.0!nntp.google.com!r185no183976ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi.bazy-danych Date: Wed, 1 Feb 2017 05:06:58 -0800 (PST) In-Reply-To: <58919a3e$0$15192$65785112@news.neostrada.pl> 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 References: <4f0ed382-541b-47ba-8b98-a5d18bcd269e@googlegroups.com> <o6lqs9$kn0$1@node2.news.atman.pl> <813fa353-f246-4b33-8c1f-d12a0dff7841@googlegroups.com> <o6nsnk$p54$1@node1.news.atman.pl> <58919a3e$0$15192$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <d0312858-627e-46e0-9c41-6ceada7756df@googlegroups.com> Subject: Re: Kopiowanie , prośba o podpowiedź - kopiowanie pól z dbgrid From: lordbz <lordbz@gmail.com> Injection-Date: Wed, 01 Feb 2017 13:06:59 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit