Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Einfache Datenabfrage (https://www.delphipraxis.net/199408-einfache-datenabfrage.html)

DelTurbo 21. Jan 2019 15:52

Datenbank: FIREBIRD • Version: 2.5 • Zugriff über: dbExpress

Einfache Datenabfrage
 
Hi,
ich versuche nun schon eine weile einen Datensatz aus einer FB-Datenbank zu lesen. Ich glaube allerdings das ich von MySql zu verwöhnt bin. Folgender Code meint immer das das Feld CUSTNO nicht existiert. Ich hoffe mit kann jemand sagen was ich falsch mache.

Ich mache die Connection über folgendes: https://sites.google.com/site/dbxfirebird/home
Das Connecten klappt auch wunder bar. Ich schaffe es halt nur nicht einen Datensatz zu lesen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Connection :TSQLConnection;
  Query      :TSQLQuery;
begin
  Connection := TSQLConnection.Create(Self);
  Connection.DriverName := 'FirebirdConnection';
  Connection.LibraryName := 'dbx4fb.dll';
  Connection.VendorLib := 'fbclient.dll';
  Connection.GetDriverFunc := 'getSQLDriverFIREBIRD';
  Connection.Params.Clear;
  Connection.Params.Add('User_Name=SYSDBA');
  Connection.Params.Add('Password=masterkey');
  Connection.Params.Add('Database=localhost:e:\DB\DB1.FDB');
  Connection.Open;

  Query:=TSQLQuery.Create(Self);
  Query.SQLConnection:=Connection;
  Query.SQL.Text:='select * from BAS_CUSTOMERS where CUSTNO=10025;';
  Query.ExecSQl;
  Label1.Caption:=Query.FieldByName('CUSTNO').AsString; //Hier kommt die aussagen das es das Feld nicht gibt.

end;
Vielen Dank im Voraus

Delphi.Narium 21. Jan 2019 15:58

AW: Einfache Datenabfrage
 
Abfragen öffnet man mit Open.

ExecSQL dient nicht für Abfragen, sondern für Insert, Update, Delete ...

Und das hat nichts mit MySQL und verwöhnt und Firebird nicht so verwöhnt oder so zu tuen, sondern was mit dem Unterschied zwischen DML, DDL, DCL (http://www.datenbanken-verstehen.de/...dcl-kommandos/)

DelTurbo 21. Jan 2019 16:19

AW: Einfache Datenabfrage
 
Hi,
erstmal danke für die Info´s. Ich habe nun das ExecSql gegen Open getauscht. Leider kommt dann folgender Fehler.

Code:
Erste Gelegenheit für Exception bei $7727C54F. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 10038454 in Modul 'fbclient.dll'. Lesen von Adresse 00000000'. Prozess Project1.exe (2420)
Mach ich grundsätzlich etwas falsch? Ich habe den ganzen tag gesucht und habe im Grunde nichts gefunden was mit weiter helfen würde. Das einzige was ich geschafft habe ich die Connection.

Edit: Vielleicht gibt es ein Beispiel? Das wäre Toll.

ConnorMcLeod 21. Jan 2019 16:31

AW: Einfache Datenabfrage
 
...

Delphi.Narium 21. Jan 2019 16:39

AW: Einfache Datenabfrage
 
Und wie soll man jetzt ohne Quelltext erraten, was da der Fehlergrund sein könnte?

Komplettes Projekt zippen und anhängen!

Oder hier den kompletten Quelltext zwischen Delphitags einfügen!

Wie ist das eigentlich, wenn man lokale Variabeln in 'ner Prozedur, 'nem ButtonClickEreignis ... deklariert, wie lange sind die dann gültig, wie lange kann dann darauf zugegriffen werden? Wenn man dann dafür Speicher reserviert und den nicht in der Prozedure wieder freigibt, entstehen dann keine Speicherlecks?

Beispiel? Suchmaschine? Tutorial? Delphi? Datenbank? 1. Treffer?

DelTurbo 21. Jan 2019 16:43

AW: Einfache Datenabfrage
 
Öhm, nun weiß ich nicht was du meinst. Der Quelltext steht doch oben. Dort ist nur ExecSql durch Open geändert. Wie ich geschrieben habe. Die eigentliche Datenbank kann ich nicht veröffentlichen.

Oder was meinst du???

DelTurbo 21. Jan 2019 16:45

AW: Einfache Datenabfrage
 
Zitat:

Zitat von ConnorMcLeod (Beitrag 1423733)
...

Sorry, das verstehe ich nicht. Habe ich was "dummes" oder falsches geschrieben???

Delphi.Narium 21. Jan 2019 17:17

AW: Einfache Datenabfrage
 
Zitat:

Zitat von DelTurbo (Beitrag 1423736)
Öhm, nun weiß ich nicht was du meinst. Der Quelltext steht doch oben. Dort ist nur ExecSql durch Open geändert. Wie ich geschrieben habe. Die eigentliche Datenbank kann ich nicht veröffentlichen.

Oder was meinst du???

Dein Projekt besteht garantiert aus mehr, als dem ButtonClickEreignis.

Datenbank: Testdatenbank mit Nonsensdaten?

... von ConnorMcLeod heißt: Hat mit 'ner Antwort angefangen, diese aber nach dem Abschicken wieder verworfen. Betrachte seine ... einfach als nichtexistent ;-)

Benutze selbst halt "nur" die ZeosLib. Da steht bei Database dann "nur" der Dateiname, ohne das localhost: davor.

Aus Deiner Fehlermeldung ist nicht zu entnehmen, wo genau sie auftritt, welche Zeile des Quelltextes. Passiert der Fehler innerhalb der obigen Routine oder außerhalb?

Prinzipiell dürfte gelten: Bei einer Zugriffsverletzung wird auf etwas zugegriffen, das beim Zugriff nicht (mehr) existiert.

DelTurbo 21. Jan 2019 17:37

AW: Einfache Datenabfrage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Leider ohne DB.

ConnorMcLeod 21. Jan 2019 17:39

AW: Einfache Datenabfrage
 
Zitat:

Zitat von DelTurbo (Beitrag 1423738)
Zitat:

Zitat von ConnorMcLeod (Beitrag 1423733)
...

Sorry, das verstehe ich nicht. Habe ich was "dummes" oder falsches geschrieben???

;-) Nein, das war ich und habe es gelöscht, bevor es jemand lesen kann ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz