Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOQuery Komponente unidirektionalen Datenmenge (https://www.delphipraxis.net/164090-tadoquery-komponente-unidirektionalen-datenmenge.html)

Kevin11 28. Okt 2011 09:32

Datenbank: MS-SQL • Version: 2005 • Zugriff über: ADO

TADOQuery Komponente unidirektionalen Datenmenge
 
Hallo,

ich bekomme einen merkwürdigen Fehler bei einer SELECT Abfrage über 2 Tabellen mit einer TADOQuery Komponente.

Fehler:
Zitat:

Diese Operation ist bei einer unidirektionalen Datenmenge nicht gestattet
Query -> Connection
Query -> DataSource -> ClientDataSet -> DataSetProvider -> DataSet
DataSet -> DataSource
DataSet -> Connection

Code:
Delphi-Quellcode:
  zqPers := TADOQuery.Create(nil);
  with zqPers do
  begin
    Connection := Form2.ADOConnection;
    DataSource := Form2.DataSourceADO;
    CursorLocation := clUseServer;
    SQL.Clear;
    SQL.Add('SELECT * FROM Tabelle1, Tabelle2 WHERE Tabelle1.Feld1 = Tabelle2.Feld2 ');
    Open;
  end;
Vielen Dank.

Kevin11 2. Nov 2011 08:33

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Kann mir den niemand helfen?

Jumpy 2. Nov 2011 09:03

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Das CursorLocation mal auskommentiert?

Kevin11 2. Nov 2011 09:16

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Zitat:

Zitat von Jumpy (Beitrag 1133927)
Das CursorLocation mal auskommentiert?

Ja, ich habe alles schon versucht. Mit
Delphi-Quellcode:
SQL.Text := 'SELECT * FROM Per';
geht es problemlos und wenn ich die Join Abfrage direkt durch den Server ausführenlasse, bekomme ich auch ein Ergebnis.

Jumpy 2. Nov 2011 09:22

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
OK. Zurück. Ich hab glaub ich gar nicht verstanden, was du da machst.
Du gibst der Query eine Connection, über die sie die Abfrage an die DB schickt.

Dann gibst du ihr aber noch eine DataSource? Wieso.
Sollen die zwei Tabellen über zwei "Wege" kommen?

Kevin11 2. Nov 2011 09:25

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Also eigentlich möchte ich nur eine JOIN-Abfrage machen. Ich habe die Data Source auch weggelassen und der selbe Fehler kommt. Ich brauch ja nichts unidirektionales wenn ich nur ein SELECT machen möchte. Oder liege ich da falsch?

Gollum 2. Nov 2011 10:17

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Hallo,

der Fehler könnte die Query sein.
Funktioniert folgendes?
Delphi-Quellcode:
SQL.Text:=
  'SELECT t1.*, t2.* FROM Tabelle1 t1 INNER JOIN Tabelle2 t2 WHERE t1.Feld1 = t2.Feld2';

Kevin11 2. Nov 2011 10:48

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Hallo,

der Fehler der MS-SQL 2005 DB:
Meldung 156, Ebene 15, Status 1, Zeile 1
Falsche Syntax in der Nähe des 'WHERE'-Schlüsselwortes.


Der Code der MS-SQL 2005 DB:
SELECT t1.*, t2.* FROM Per t1 INNER JOIN ZOrgPer t2 WHERE t1.pkPerID = t2.fkPerID

Bummi 2. Nov 2011 10:54

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Joins mit ON nicht mit Where...
kann es sein dass Du keine Primärschlüssel in den Tabellen hast?

DeddyH 2. Nov 2011 11:00

AW: TADOQuery Komponente unidirektionalen Datenmenge
 
Und an der "alten" Syntax scheint es auch nicht zu liegen. Ich habe hier einmal ein kleines Testprojekt mit ADO auf SQLExpress 2008 gemacht, das funktioniert ohne Probleme. Bist Du ganz sicher, dass das auch wirklich der fehlerverursachende Code ist?

P.S.: Welchen DB-Treiber hast Du denn ausgewählt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 1 von 3  1 23      

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