Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOQuery will nicht auf Tabelle! (https://www.delphipraxis.net/61799-tadoquery-will-nicht-auf-tabelle.html)

FrankBrin 26. Jan 2006 13:32

Datenbank: SQL Server 2005 Express • Zugriff über: ADO

TADOQuery will nicht auf Tabelle!
 
Wer hilft mir den Wald wegzuschieben, damit ich die Bäume seh?

konkret: Experimentiere gerade mit SQL Server 2005 Express (ehemals MSDE), komme aber eigentlich aus der Access-Welt und hab jetzt so meine Schwierigkeiten. Möchte, wie bei Access auch, über TADOQuery auf eine Tabelle des SQLExpress Servers zugreifen.

TADOConnection funktioniert. Habe die TAdoQuery mit dem SQL String "Select * FROM Table_1" aufgerufen und es kommt die Meldung "Ungültiger Objektname "Table_1"".
Was kann man hier denn eigentlich alles so falsch machen?

Gruß Frank

Bernhard Geyer 26. Jan 2006 13:35

Re: TADOQuery will nicht auf Tabelle!
 
Zitat:

Zitat von FrankBrin
TADOConnection funktioniert. Habe die TAdoQuery mit dem SQL String "Select * FROM Table_1" aufgerufen und es kommt die Meldung "Ungültiger Objektname "Table_1"".
Was kann man hier denn eigentlich alles so falsch machen?

Ich würde mal schwer darauf Tippen das in der Gewählten Datenbank es keine Tabelle "Table_1" gibt.
Bei der definition des Connection-String mußt du auch noch die ausgewählte Datenbank angegen. Ich denke dein User hat als Standard-Datenbank "Master" eingerichtet und in deinem Connectionstring steht auch "Master"

FrankBrin 26. Jan 2006 13:41

Re: TADOQuery will nicht auf Tabelle!
 
Nee, Nee, Nee,
dem ist nicht so. Habe explizit mit diesem SQL Express Manager eine neue Datenbank (Name = inout) angelegt. Und habe weiterhin darin eine Tabelle table_1 angelegt und sogar einen Datensatz eingepflegt.
Im ConnectionString steht die Datenbank als Initial Catalog drin. Bin allerdings als User sa verbunden.

Bernhard Geyer 26. Jan 2006 13:44

Re: TADOQuery will nicht auf Tabelle!
 
Zitat:

Zitat von FrankBrin
Nee, Nee, Nee,
dem ist nicht so. Habe explizit mit diesem SQL Express Manager eine neue Datenbank (Name = inout) angelegt. Und habe weiterhin darin eine Tabelle table_1 angelegt und sogar einen Datensatz eingepflegt.
Im ConnectionString steht die Datenbank als Initial Catalog drin. Bin allerdings als User sa verbunden.

Zeig mal den Connection-String.
Unterscheidet dein SQL-Server Groß/Kleinschreibung? Probier mal
SQL-Code:
Select * FROM table_1

FrankBrin 26. Jan 2006 13:52

Re: TADOQuery will nicht auf Tabelle!
 
Der ConnectionString und auch den ganzen Code dazu. Tabelle heisst ausserdem nicht table_1 sondern JMF

CCS = 'Provider=SQLOLEDB.1;' +
'Password=%s;' +
'Persist Security Info=True;' +
'User ID=sa;' +
'Initial Catalog=%s;' +
'Data Source=%s';

DBServer = 'OPEL05';
DBName = 'inout';
PW = '****';

procedure TDatMan.DataModuleCreate(Sender: TObject);
begin
Connect2DB();
end; //================================================== ======================

procedure TDatMan.Connect2DB;
var i : Integer;
strConnection : string;
begin
isConnected := true;
strConnection := Format( CCS, [PW, DBNAME, DBServer]);
for i := 0 to MaxMessages-1 do messages[ i] := '';
idxmsg := 0;
with coInout do begin
try
if Connected then Close;
ConnectionString := strConnection;
Connected := true;
except
if Errors.Count <> 0 then for i := 0 to Errors.Count-1 do begin
if idxmsg < MaxMessages then begin
messages[ idxmsg] := Errors[ i].Description;
Inc( idxmsg);
end;
end;
isConnected := False;
end;
end;
end; //================================================== ======================

function TDatMan.HasNewJMFInfo: Boolean;
var sql : String;
begin
if qryJMF.Active then qryJMF.Close();
qryJMF.SQL.Clear();

sql := 'SELECT * FROM JMF'; // WHERE EXPORTIERT = 0';
// try
qryJMF.SQL.Add( sql);
qryJMF.Open();

// >>>>> hier kommt die Exception <<<<<<
result := qryJMF.RecordCount > 0;
dsJmf.Enabled := True;
{
except
result := False;
end;
}
end; //================================================== ======================




Gross-/Kleinschreibung hilft nicht!!!

Bernhard Geyer 26. Jan 2006 13:57

Re: TADOQuery will nicht auf Tabelle!
 
Lass dir mal die sichtbaren Tabellen mittels
Delphi-Quellcode:
coInout.GetTableNames
geben. Was hast Du da?

FrankBrin 26. Jan 2006 14:11

Re: TADOQuery will nicht auf Tabelle!
 
Danke für die gute Idee!
Systemtabellen werden ausgegeben, aber meine JMF nicht! Also vermute ich liegt das am Server bzw. an der Deklaration der Tabelle.
Wie komm ich weiter?

Bernhard Geyer 26. Jan 2006 14:25

Re: TADOQuery will nicht auf Tabelle!
 
Zitat:

Zitat von FrankBrin
Danke für die gute Idee!
Systemtabellen werden ausgegeben, aber meine JMF nicht! Also vermute ich liegt das am Server bzw. an der Deklaration der Tabelle.
Wie komm ich weiter?

Mir gehen die Ideen aus.
Kannst Du mit dem Query Analyser mal auf die DB "draufgehen"

FrankBrin 26. Jan 2006 14:37

Re: TADOQuery will nicht auf Tabelle!
 
Also bin schon kräftig am suchen und am mich vertraut machen mit dem SQLExpress Manager. Geiles Teil.
Der sagt mir im Activity Monitor, dass sich mein Delphi Programm am Server angemeldet hat und sagt, daß das Programm mit der Datenbank MASTER verbunden ist.

Dein Tipp am Anfang war also gar nicht so schlecht.

Gehe also weiter auf Suchstation!

FrankBrin 26. Jan 2006 14:55

Re: TADOQuery will nicht auf Tabelle!
 
Mann muss schon einige Wälder wegschieben um die Bäume zu erkennen.

Hab die Lösung! Es gibt in der TAdoConnection eine Eigenschaft: DefaultDatabase. Die stand natürlich auf master.

Es ist nicht mein Tag, also geh' ich jetzt Heim und lass das mit dem Programmieren.

Danke für die Unterstützung!


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 Uhr.

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