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 Abfrage auf Access .mdb (https://www.delphipraxis.net/118353-sql-abfrage-auf-access-mdb.html)

alphaflight83 6. Aug 2008 10:40

Re: SQL Abfrage auf Access .mdb
 
Ich hoffe doch, wird halt zur Laufzeit definiert, so dass das Programm verschoben werden kann.

Delphi-Quellcode:

DB_Path := ExtractFilePath(ParamStr(0)) + 'DATA';

ADOConnectionStringStandard := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB_Path +
                                 '\Database.mdb;Persist Security Info=False';

(* ADOTableClients: Definition of 'ConnectionString' and 'Table' *)
with ADOTableClients do begin
  try
    ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DB_Path +
                        '\Database.mdb;Persist Security Info=False';
    TableName := 'Clients';
    Active := True;
  except
   ShowMessage('The database Database.mdb could not be found in the current directory '
                + #10#13 + DB_Path)
  end;
end;

ADOQueryClients.  ConnectionString := ADOConnectionStringStandard;
Datasource von ADOQueryClients ist DataSourceClients, die per DataSet wiederum auf ADOTableClients verweist.

Ich suche ja schon ne Weile, von daher kann es fast nur ein kleiner oder besonders dämlicher Fehler sein,
der mir nicht auffällt. :pale:

DeddyH 6. Aug 2008 10:45

Re: SQL Abfrage auf Access .mdb
 
Zunächst einmal würde ich mir einen Breakpoint auf die Ausführung der Abfrage setzen, um zu prüfen, ob Du überhaupt dort ankommst.
Zitat:

Datasource von ADOQueryClients ist DataSourceClients, die per DataSet wiederum auf ADOTableClients verweist.
Wieso denn das?

alphaflight83 6. Aug 2008 10:51

Re: SQL Abfrage auf Access .mdb
 
Hüstel, dachte das geht so ...
Ist das wohl der Fehler?

Ich wollte eben mit einer Datasource sowohl Query also auch Table abdecken.
Durch diese Verbindung wähnte ich dann alles abgedeckt.
Kann natürlich sein, dass das absoluter Käse ist und ich mal wieder ungenau gelesen habe.
(Gefährliches Halbwissen :stupid: )

DeddyH 6. Aug 2008 10:54

Re: SQL Abfrage auf Access .mdb
 
Nimm mal die Datasource bei der Query raus und setze die Query als Dataset in der Datasource ein (ich hoffe, ich habe das jetzt nicht auch verwechselt :mrgreen:).

alphaflight83 6. Aug 2008 10:59

Re: SQL Abfrage auf Access .mdb
 
Wo/Wie krieg ich denn jetzt meine Tabelle rein? :gruebel:
Ich kann ja nur bei einer Table auch einen tableName vergeben ...

DeddyH 6. Aug 2008 11:12

Re: SQL Abfrage auf Access .mdb
 
Wozu brauchst Du den Tablename?

alphaflight83 6. Aug 2008 11:30

Re: SQL Abfrage auf Access .mdb
 
... Stimmt, brauch ich nicht, hab ich in der SQL, schon wieder nur halb gedacht.
... Geht aber trotz allem immer noch nicht.
Recordcount und damit NumberOfClients ist nach wie vor 0

Edit: Kann sein, dass ich bei der Aufrufreihenfolge was verzockt habe ...
Das ganze wird während der FormCreate procedure der MainForm aufgerufen.
Möglich, dass da noch nicht alles initialisiert ist ... Muss das prüfen.

nahpets 6. Aug 2008 11:51

Re: SQL Abfrage auf Access .mdb
 
Hallo,
Delphi-Quellcode:
SQL.Text := 'SELECT ID FROM Clients WHERE Status LIKE :Status ';
:Status ist doch ein String, also mach mal Hochkommas drum, könnte sein dass das einzelne Y als irgendwas anderes interpretiert wird.

Delphi-Quellcode:
SQL.Text := 'SELECT ID FROM Clients WHERE Status LIKE ' + QuotedStr('Y'));
Was für ein Ergebnis bekommst Du denn ohne die Wherebedingung, dann müsste doch alles kommen, ist dem so, wenn nein, liegt das Problem nicht in der Abfrage.

Wie sieht das Ergebnis aus, wenn Du es nicht aus Delphi heraus absetzt (Access, Datenbankexplorer, ...)?

Stephan

alphaflight83 6. Aug 2008 11:59

Re: SQL Abfrage auf Access .mdb
 
Quoted String hatte ich zuvor auch schon getestet, hat aber nicht funktioniert.
Hab jetzt auch nochmal die Abfrage um die WHERE Passage erleichtert und es passiert genau ... Nichts.
Das heisst, dass ich als nächstes wirklich erst mal meiner Vermutung nachgehen muss, das beim Aufruf etwas danebenläuft.

Vielen Dank erst mal an alle Beteiligten. Melde mich dann mit der Erfolgsmeldung oder mit weiteren Hilferufen :stupid:

mkinzler 6. Aug 2008 12:13

Re: SQL Abfrage auf Access .mdb
 
Zitat:

:Status ist doch ein String, also mach mal Hochkommas drum, könnte sein dass das einzelne Y als irgendwas anderes interpretiert wird.
Bei der Verwendung von Parametern sollte man nicht Quoten. Es fehlt wie gesagt der Platzhalter(Joker)


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

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