![]() |
Datenbank: Navision / Access • Zugriff über: ADO
in sql-statement wird <<???>> eingefügt - warum/
Hi,
beim Kunden gibt es eine Navision-DB auf die ich mit meinem Programm zugreifen will. Gut, zum Testen der ganzen sql-statements habe ich auf meinem Rechner Access benutzt. Wir haben dann einen ConnectionString zusammengebastelt für Navision und mit dem AdoQuery-Tool kann man ja auch testen, ob mit diesem String erfolgreich auf die DB zugegriffen werden kann. Dieser Test sagt erfolgreich. Nun soll er ein SQL-statement absetzen. Das ganze sieht bei mir dann so aus:
Delphi-Quellcode:
Wenn ich dies nun mit meinem Access durchlaufen lasse, benutzt er das SQL-statment korrekt, "SELECT * FROM 25 WHERE [Barcode Value] = '123'", lassen wir dies aber mit der Navision-DB laufen macht er aus dem korrekten Statement das: "SELECT * FROM 25 <<???>> WHERE [Barcode Value] = '123'". Gut, damit wüsste ich als DB vielleicht auch nichts mit anzufangen. Form2.AdoQuery1.Active:= false; Form2.AdoQuery1.SQL.Clear; //Suchbegriff enthält Leerzeichen deshalb in Klammern sql1:='Select * from '+AdoTab1+' where ['+Suchbegriff1+'] ='''+FieldValue+''''; Form2.AdoQuery1.SQL.Add(sql1); try Form2.AdoQuery1.Active:= true; except on E:Exception do Showmessage(e.message); end; Die Frage nun, warum fügt er das ein -> <<???>> ein? Irgendjemand eine Idee, wo ich noch suchen könnte? Für jeden Tip dankbar. Ich hab dann auch nur mal ein AdoConnection eingefügt und getestet ob open klappt, das macht er einwandfrei, also kann er auf die DB wohl zugreifen und sich mit ihr verbinden. |
Re: in sql-statement wird <<???>> eingefügt - wa
Sieht aus, als würde die Datenbank dir so mitteilen wollen, was genau ihr am dem Statement nicht passt.
Die Zeichen <<???>> könnten zum Beispiel bedeuten, das die Tabelle 25 nicht existiert, Du nicht darauf zugreifen kannst, Tabellennamen bei Navision anders angegeben werden müssen, etc... |
Re: in sql-statement wird <<???>> eingefügt - wa
Das habe ich mir auch gedacht und den Name für die Tabelle mal genommen, wobei mir vorher gesagt wurde, dass ich die Tabellen über die Nummern ansprechen müsste, die Fehlermeldung hat sich auch ein klein wenig verändert:
"SELECT * FROM <<???>> [Vendor Tabelle] WHERE [Barcode Value] = '123'" Aber wirklich geholfen hat mir das nun auch nicht, <<???>> ist jetzt eins weiter vorne. |
Re: in sql-statement wird <<???>> eingefügt - wa
Gibt es Tabellen, die nur ein Wort als Namen haben (z.B. "Vendor")? Probier doch mal aus, ob das Select auf solchen Tabellen geht. Meine mich erinnern zu können, dass es da Probleme mit Tabellennamen, die aus mehreren Wörter bestehen, gibt...
|
Re: in sql-statement wird <<???>> eingefügt - wa
stimmt, wenn der TabellenName nur aus einem Wort besteht, hat er ein Problem.
Aber wie bring ich ihm nun bei, dass er auch diesen NAmen aktzeptiert, mit eckigen Klammern schon mal nicht, das hatte ich ja schon, in Hochkommata auch nicht. |
Re: in sql-statement wird <<???>> eingefügt - wa
Hallo Susanne,
Zitat:
Falls bei einem simplen Tabellennamen die eckigen Klammern akzeptiert werden, dann kann es sein, dass du den exotischen Namen nur qualifizieren musst: [dbo].[Vendor Tabelle] Der Name ist aber auch in jeder Hinsicht exotisch - das enthaltene Blank und nicht zuletzt der Denglisch-Mix ... Grüße vom marabu PS: Ist Navision beim Kunden auf MSSQL Server aufgesetzt? |
Re: in sql-statement wird <<???>> eingefügt - wa
blöde Frage, aber wofür steht das dbo?
|
Re: in sql-statement wird <<???>> eingefügt - wa
dbo = database owner - ein terminus technicus bei MSSQL. Über den Aufbau von qualifizierten Namen findest du was in der Dokumentation zum MSSQL Server.
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 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