Entwickler-Ecke
Datenbanken - Query Abfrage über 2 verschiedene TDatabase mit Passworten
Rehauge - Di 27.08.02 10:17
Titel: Query Abfrage über 2 verschiedene TDatabase mit Passworten
Database1 hat einen festen Alias und in Database1 wird der Alias gewechselt je nach bedarf. Der Zugriff benötigt ein Login, das in der Database hinterlegt ist.
Die Abfrage in der Qry habe ich auf verschiedener weise probiert.
Versuch1: Konnte keine Verbindung herstellen.
Quelltext
1: 2: 3: 4: 5:
| SELECT DISTINCT .... FROM ":Database1.DatabaseName:Tabelle1" T1, ":Database1.DatabaseName:Tabelle2" T2 WHERE ... ORDER BY .... |
Fehlermeldung: Unbekannte Tabelle oder Korrelationsname :(
Habe ich etwas am Code falsch eingegeben :? ??
Versuch2: Wollte das Passwort haben aber nur einmalig.
Quelltext
1: 2: 3: 4: 5:
| SELECT DISTINCT .... FROM ":Alias1:Tabelle1" T1, ":Alias2:Tabelle2" T2 WHERE ... ORDER BY .... : |
Quelltext
1: 2: 3: 4: 5:
| procedure TDtMdlRechungssatz.QryBeforeOpen(DataSet: TDataSet); begin Session.AddPassword('....'); Session.AddPassword('....'); end; |
Fehler: Er kann auf den zweiten alias nicht zugreifen, da eine zweite Passwortabfrage nicht erfolgt. Rechner hängt sich auf :x .
Wie kann ich es umgehen das die Passwortabfrage kommt und das zweite Passwort zuweissen :?: ???
Moderiert von
Tino: Code-Tags hinzugefügt.
a.C.k - Di 27.08.02 10:28
setze doch die Eigenschaft "loginPromt" auf False. Dann solte keine Passwortabfrage mehr kommen.
Zu 1:
gebe doch den Tabellennamen oder den Pfadnamen zu deiner Tabelle an.
SELECT DISTINCT ....
FROM 'c:\....\tabelle1.db T1, ":c:\...\Tabelle2.db' T2
WHERE
...
ORDER BY ....
Vieleicht hilft es ja was ;)
Rehauge - Di 27.08.02 10:46
| a.C.k hat folgendes geschrieben: |
setze doch die Eigenschaft "loginPromt" auf False. Dann solte keine Passwortabfrage mehr kommen.
Zu 1:
gebe doch den Tabellennamen oder den Pfadnamen zu deiner Tabelle an.
SELECT DISTINCT ....
FROM 'c:\....\tabelle1.db T1, ":c:\...\Tabelle2.db' T2
WHERE
...
ORDER BY ....
Vieleicht hilft es ja was ;) |
Über das Modul TDatabase ist das loginpromt ist schon auf False.
Ich kann über die Qry.SQL.TString nicht auf das Datadbase1.DatabaseName zugreifen und über Qry.DatabaseName kann ich bloß eine Database zuweisen, ich brauche aber zwei.
Ich Arbeite mit Delphi 5.
Trotzdem Danke
bis11 - Di 27.08.02 10:51
Und haste das schonmal probiert ?
Quelltext
1:
| Qry.SQL.Add('SELECT DISTINCT ... FROM' + QuotedStr(Database1.DatabaseName) + ',' + QuotedStr(Qry.DatabaseName) + 'WHERE ... ORDER BY ..'; |
Rehauge - Di 27.08.02 13:50
| bis11 hat folgendes geschrieben: |
Und haste das schonmal probiert ?
Quelltext 1:
| Qry.SQL.Add('SELECT DISTINCT ... FROM' + QuotedStr(Database1.DatabaseName) + ',' + QuotedStr(Qry.DatabaseName) + 'WHERE ... ORDER BY ..'; | |
Damit komme ich auch nicht weiter, da die Aneisung so addiert wird
Qry.SQL.Add(' SELECT DISTINCT ... ');
Qry.SQL.Add(' FROM ":Aliasame1:Table1" T1, ":Aliasname2:Table1" T2 ');
Qry.SQL.Add(' WHERE ... ORDER BY ..');
Aliasame1 und Aliasame2 sind in der DBE-Verwaltung eingerichtet.
Database1.DatabaseName wird im Programm vergeben und bekommt einen Alias aus der DBE-Verwaltung zugewiesen.
Das Login für die Datenbank kann auch zugewiesen werden über die Parameter:
USER NAME=...
PASSWORD=....
Das Problem liegt darin, das ein dierektes Einschreiben in den SQL TString der DatabaseName vom Objakt TDatabase nicht erkannt wird und im Objektinspektor nur ein DatabasName zugewiesen werden kann.
Verwendet man in der Qry Verschiedene Aliasnamen, die in der DBE-Verwaltung vergeben worden sind, ohne Passworter gibt es keine Probleme. :(
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!