Autor |
Beitrag |
cam
Hält's aus hier
Beiträge: 14
|
Verfasst: So 06.03.11 19:47
Hallo an alle,
ich hoffe, ihr könnt mir helfen. Wir suchen schon seit Stunden eine Lösung.
Ich will den Inhalt einer Tabellenspalte (MS SQL Server 2008) in eine ComboBox (Delphi 2009) schreiben.
Beim Ausführen des Codes komme ich immer bis zur Ausgabe 'Datenbankverbindung steht' danach kommt folgende oder ähnliche Fehlermeldung (variiert): "Zugriffsverletzung bei Adresse 63696C43. Lesen von Adresse 63696C43" - Wo liegt das Problem???
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TForm1.DBOpen(Sender: TObject); var query: TADOQuery; begin try ADOConnection1.Open(); ShowMessage('Datenbankverbindung steht'); with query do begin Close; SQL.Clear; SQL.Add('SELECT Name FROM Tabelle'); Open; CBZaehlliste.Items.Clear; ShowMessage('Abfrage ausgeführt'); First; while not query.Eof do begin ShowMessage(FieldByName('Name').AsString); CBZaehlliste.Items.Add(FieldByName('Name').Text); Next; end; end; except on e: exception do begin ShowMessage(e.Message); end; end; end; |
Moderiert von Narses: Code- durch Delphi-Tags ersetzt
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 06.03.11 20:13
|
|
SmileySN
      
Beiträge: 297
WinXP, Win7
Delphi 2010 Professional
|
Verfasst: So 06.03.11 20:43
Ja du solltest ein
Delphi-Quelltext 1:
| query := TADOQuery.Create(Nil); |
vorher benutzen, wenn du es schon selbst anlegen willst.
|
|
cam 
Hält's aus hier
Beiträge: 14
|
Verfasst: So 06.03.11 22:20
Danke! Hatte Tomaten auf den Augen 
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 07.03.11 21:48
...dann hätte ich noch den with query do Block. Setze mal vor jede Zeile das "query". da kommen komische Sachen dabei raus. Komisch, daß das nicht angemeckert wird. Daß with nur in Ausnahmefällen benutzen.

|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 07.03.11 21:51
Das Problem ist doch schon behoben.
Wegen with: Das funktioniert schon, es macht den Code nur extrem unübersichtlich und damit fehleranfällig und verhindert effektives Debuggen, aber funktionieren tut es. 
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 07.03.11 22:03
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 07.03.11 22:16
Klar geht das. Innerhalb von "with query" gibt es kein "query", also wird außerhalb geschaut und dort das query gefunden.
Du bist innerhalb von with nicht gezwungen den with-Ausdruck wegzulassen.
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: Mo 07.03.11 22:28
Bin ich mal froh, daß ich leserlichen, debuggbaren Quelltext produziere... Das Chaos geht ja gar nicht... 
|
|