Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DB - Komponente ohne GUI? (https://www.delphipraxis.net/3116-db-komponente-ohne-gui.html)

Evilboyz 24. Feb 2003 09:24


DB - Komponente ohne GUI?
 
Hallo allerseits!

Wenn ich in meinem Programm eine Komponente, beispielsweise die SQL Querry, verwenden will, platziere ich normalerweise einfach die entsprechende Komponente auf meinem Formular.
Nun möchte ich aber eine SQL Querry in einer Klasse verwenden, die keine grafische Oberfläche besitzt, wie binde ich die Komponente nun in diese Klasse ein???

Luckie 24. Feb 2003 09:41

Dynamisch im Code erzeugen:
Delphi-Quellcode:
var
  MyKompo : TKompo;
begin
  MyKompo := TKompo.Create;
  My Kompo._ _ _ := 'bla blub';
Und nicht vergessen mit Free wieder freigeben.

Evilboyz 24. Feb 2003 12:00

Hallo Luckie,

vielen Dank für die Info, grundsätzlich sollte es so funktionieren! allerdings hat mein Code wohl noch Fehler, was ist in folgender Funktion falsch??? :freak:
Ich bekomme einfach keinen Wert aus der Datenbank zurück!

Code:
function MyDBHandle.DBAccess(Input: String): String;
var
   MyQuery : TQuery;
begin
   try
      MyQuery := TQuery.Create(MyQuery);
      MyQuery.LoginPrompt := False;
      MyQuery.DatabaseName := 'Test';
      MyQuery.Active := False;
      MyQuery.SQL.Clear;
      MyQuery.SQL.Add('SELECT Info FROM Tab WHERE Number='+ QuotedStr (Input));
      MyQuery.Open;
      MyQuery.First;
      Result := MyQuery.FieldList.Values['Info'];
   except
      Result := '-1';
   end;

Sharky 24. Feb 2003 12:08

Hai Evilboyz,

von welchem Typ ist denn das Feld Number in deiner Tabelle?

Wenn es nummerich ist musst Du die Abfrage ohne QuotedStr machen.

Achja, zum auslesen würde ich:
Delphi-Quellcode:
resulst := MyQuery.FieldByName ('info').AsString;
nehmen. Ist aber geschmags sache ..

Chewie 24. Feb 2003 12:11

Das sieht mit etwas seltsam aus:
Delphi-Quellcode:
MyQuery := TQuery.Create(MyQuery);
Ich nehme mal an, dass der Parameter im Konstrukrur den Owner angibt. Wenn ja, ist das wohl ziemlich ungünstig, ein Objekt anzugeben, dass zu diesem Zeitpunkt noch nicht existiert, da es ja erst in diesem Moment erstellt wird. Schreib also besser folgendes:

Delphi-Quellcode:
MyQuery := TQuery.Create(nil);

Evilboyz 24. Feb 2003 14:32

Zitat:

Zitat von Chewie
Das sieht mit etwas seltsam aus:
Delphi-Quellcode:
MyQuery := TQuery.Create(MyQuery);

Ja, das sieht mir auch etwas seltsam aus :oops: ... danke für den Hinweis!
Zitat:

Zitat von Sharky
Achja, zum auslesen würde ich:
Delphi-Quellcode:
resulst := MyQuery.FieldByName ('info').AsString;
nehmen. Ist aber geschmags sache ..

Da stimme ich Dir mal zu, nachdem ich beides ausprobiert habe, bin ich absolut Deiner Meinung! ;-)
So und jetzt mal Danke an alle, die mir geholfen haben, es funktioniert endlich :bounce1: :bounce2: :bouncing4:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 Uhr.

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