Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL - Zugriff, evtl. sogar ohne BDE (https://www.delphipraxis.net/2991-sql-zugriff-evtl-sogar-ohne-bde.html)

Gollum 18. Feb 2003 11:02

Hallo,

hast Du die Query mit der Connection verbunden?


Vorteil: Die Komponenten arbeiten viel besser mit dem SQL-Server zusammen als die BDE-Komponenten oder sonstige Komponenten. Ein gutes Buch dazu: "Andreas Kosch - ADO und Delphi", ISBN: 3935042108

Evilboyz 18. Feb 2003 11:09

Zitat:

Zitat von Gollum
hast Du die Query mit der Connection verbunden?

Ja, habe ich. Bei Ausführen bekomme ich die Meldung "CoInitialize wurde nicht aufgerufen" :freak: :shock:

Gollum 18. Feb 2003 11:29

Hallo,

ich hatte mit diese Fehlermeldung im Zusammenspiel mit ADO noch nicht. Ich benutze ein Datenmodul und lege dort alle datensensitiven Komponenten wie Connection und Query ab.

Evtl. hilft es Dir, wenn Du in der Unit, in der die ADOQuery bzw. Connection genutzt wird, folgendes einträgst:

Code:

...
initialization
  CoInitialize(nil);

finalization
  CoUninitialize;

Evilboyz 18. Feb 2003 11:38

CoInitialize, etc. habe ich jetzt auch eingetragen (es gibt dazu ja auch einige Threads im Forum).
Komischerweise bekomme ich noch immer die gleiche Fehlermeldung! *verzweifel*
Was macht CoInitialize eigentlich genau? Hat irgendwer eine Info darüber, die Hilfe schweigt sich da aus, bzw. erzählt mir nur Dinge, die mir absolut unverständlich sind!

Gollum 18. Feb 2003 11:53

Hallo,

ich würde einmal auf der Borland-Seite vorbeischauen, ob es ein Update für ADO gibt. Außerdem kann es nicht schaden, die neueste MDAC-Version zu installieren.

Sharky 18. Feb 2003 12:10

Zitat:

Zitat von Evilboyz
...
mein Code für den Zugriff sieht nun wie folgt aus:
Code:
Form1.Query.Active:=false;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add('SELECT Info FROM Table1 WHERE test='+GetWord(sIncome, 'nx', 1));
Form1.Query.Open;
Form1.Query.First;
sResult:= Form1.Query.FieldList.Values['Info'];

Von welchem Typ ist denn test in der Tabelle?
Wenn es ein "String" ist muss Du deinen Vergleichsoperator in zwei ' setzen.

Welcher Fehler kommt den beim Query.Open?
Achja, und ist sichergestellt das GetWord einen Wert zurückliefert?

Evilboyz 18. Feb 2003 12:53

Hallo Sharky,

also, Test ist in meiner Datenbank vom Typ Char, bei Query.Open kommt der Fehler: "...Exception der Klasse EOleException aufgetreten. Meldung:'Coinitialize wurde nicht aufgerufen'"
GetWord liefert immer einen Wert zurück.
Coinitialize führe ich in der Unit, die Form1 definiert aus, trotzdem erhalte ich diese Fehlermeldung ... :freak:

Sharky 18. Feb 2003 13:11

Versuche es doch einmal so:

Delphi-Quellcode:
Form1.Query.Active:=false;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add('SELECT Info FROM Table1 WHERE test='
   + QuotedStr (GetWord(sIncome, 'nx', 1)));  // Hier habe ich QuotedStr eingefügt!!!!
Form1.Query.Open;
Form1.Query.First;
sResult:= Form1.Query.FieldList.Values['Info'];

Evilboyz 18. Feb 2003 13:20

:pale:
Nein, funktioniert auch so nicht, nach wie vor der gleiche Fehler!!! Warum gibt es keinen weinenden Smiley??? :roll:

MadMason 18. Feb 2003 15:20

Zitat:

Zitat von Evilboyz
Code:
Form1.Query.Active:=false;
Form1.Query.SQL.Clear;
Form1.Query.SQL.Add('SELECT Info FROM Table1 WHERE test='+GetWord(sIncome, 'nx', 1));
Form1.Query.Open;
Form1.Query.First;
sResult:= Form1.Query.FieldList.Values['Info'];

ich glaube es muss heisen
Delphi-Quellcode:
Form1.Query.SQL.Add('SELECT Info FROM Table1 WHERE test='''+GetWord(sIncome, 'nx', 1)+'''');
probiersmal so


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:21 Uhr.
Seite 2 von 3     12 3      

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