![]() |
AW: in Comboboxen datensätze einfügen
ich habe jetzt folgenden kompletten code ...
Delphi-Quellcode:
aber nun bringt er mir eine zugriffsverletzung .. weiß jemand rein zufällig, woran es liegen könnte ?
procedure TForm1.ComboBox1onclick(Sender: TObject);
var adoConn : TAdoConnection; SQL : String; ADOQuery : TADOQuery; begin adoConn := TADOConnection.Create(Self); adoConn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated .....'; try if (not adoConn.Connected) then adoConn.Open; SQL := 'Select Description From Watch_Settings'; ADOQuery.SQL.Text := SQL; ADOQuery.Open; while not AdoQuery.eof do begin Combobox1.Items.Add(AdoQuery.FieldByName('Description').AsString); AdoQuery.Next; end; adoConn.Execute(SQL); if (adoConn.Connected) then adoConn.Close; finally if Assigned(adoConn) then FreeAndNil(adoConn); end; end; |
AW: in Comboboxen datensätze einfügen
Was soll den das Execute bewirken? Ist das wieder so eine ADO-Spezialität?
|
AW: in Comboboxen datensätze einfügen
Du musst den Query noch instantiieren und die Connection zuweisen
Delphi-Quellcode:
adoQuery := TadoQuery.Create(Self);
AdoQuery.Connection := AdoConn; |
AW: in Comboboxen datensätze einfügen
Und jetzt im Ganzen (ich hoffe, ich habe nichts vergessen):
Delphi-Quellcode:
procedure TForm1.ComboBox1onclick(Sender: TObject);
var adoConn : TAdoConnection; SQL : String; ADOQuery : TADOQuery; begin adoConn := TADOConnection.Create(nil); try adoConn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated .....'; if (not adoConn.Connected) then adoConn.Open; SQL := 'Select Description From Watch_Settings'; ADOQuery := TADOQuery.Create(nil); try ADOQuery.Connection := adoConn; ADOQuery.SQL.Text := SQL; ADOQuery.Open; while not AdoQuery.eof do begin Combobox1.Items.Add(AdoQuery.FieldByName('Description').AsString); AdoQuery.Next; end; finally ADOQuery.Free; end; //adoConn.Execute(SQL); if (adoConn.Connected) then adoConn.Close; finally // if Assigned(adoConn) then FreeAndNil(adoConn); end; end; |
AW: in Comboboxen datensätze einfügen
Delphi-Quellcode:
ich habs jetzt so hinbekommen .. aber das problem ist, dass er mir nur den ersten datensatz anzeigt .. und nicht alle datensätze .. das hängt denke ich mal noch mit der next.schleife zusammen ..
procedure TForm1.ComboBox1onclick(Sender: TObject);
var adoConn : TAdoConnection; SQL : String; ADOQuery : TADOQuery; begin adoConn := TADOConnection.Create(Self); adoConn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated ......'; adoQuery := TadoQuery.Create(Self); AdoQuery.Connection := AdoConn; try if (not adoConn.Connected) then adoConn.Open; SQL := 'Select Description From Watch_Settings'; adoConn.Execute(SQL); ADOQuery.SQL.Text := SQL; ADOQuery.Open; while not AdoQuery.eof do begin Combobox1.Items.Add(AdoQuery.FieldByName('Description').AsString); AdoQuery.Next; if (adoConn.Connected) then adoConn.Close; end; finally if Assigned(adoConn) then FreeAndNil(adoConn); end; end; und das sql(execute) hängt damit zusammen dass er mir den befehl der in SQL steht auch ausführt. |
AW: in Comboboxen datensätze einfügen
Delphi-Quellcode:
muss natürlich aus der Schleife raus
if (adoConn.Connected) then
adoConn.Close; |
AW: in Comboboxen datensätze einfügen
Dafür ist das ADOQuery.Open da. Aber wenn Du nach dem ersten Datensatz die Verbindung schließt, kann ja auch nur ein Datensatz zurückkommen.
Zitat:
|
AW: in Comboboxen datensätze einfügen
danke deddyH .. für den quelltext .. funktioniert wunderbar
und danke an mkinzler :) problem behoben .. hier die finalle ausgabe des quellcodes für leute, die auch das selbe problem haben, wie ich ..
Delphi-Quellcode:
procedure TForm1.ComboBox1onclick(Sender: TObject);
var adoConn : TAdoConnection; SQL : String; ADOQuery : TADOQuery; begin combobox1.Clear; adoConn := TADOConnection.Create(nil); try adoConn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated .......'; if (not adoConn.Connected) then adoConn.Open; SQL := 'Select Description From Watch_Settings'; ADOQuery := TADOQuery.Create(nil); try ADOQuery.Connection := adoConn; ADOQuery.SQL.Text := SQL; ADOQuery.Open; while not AdoQuery.eof do begin Combobox1.Items.Add(AdoQuery.FieldByName('Description').AsString); AdoQuery.Next; end; finally ADOQuery.Free; end; if (adoConn.Connected) then adoConn.Close; finally // if Assigned(adoConn) then FreeAndNil(adoConn); end; end; |
AW: in Comboboxen datensätze einfügen
Zitat:
|
AW: in Comboboxen datensätze einfügen
Und Datlef H ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz