Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi KAADO und MSSQL-Problem (https://www.delphipraxis.net/25612-kaado-und-mssql-problem.html)

UweR 9. Jul 2004 09:10


KAADO und MSSQL-Problem
 
Hallo Leute,

ich habe das folgende Problem:

Ich versuche mittels D5 und KAADO auf eine MS-SQL-Datenbank eine Abfrage zu starten und bekomme darauf eine äußerst kryptische Fehlermeldung. Das Problem hierbei ist auch das erstens die Datenbank bei einem Kunden vor Ort ist und ich hier nur auf eine ACCESS-Datenbank der gleichen Struktur zugreifen kann (damit funktionierts natürlich) und zweitens das die Datenbank-Gurus des Kunden gerade natürlich in Urlaub sind. Mir kann zwar jemand die Tabellendefinition vorlesen, welche auch mit meiner ACCESS-DB übereinstimmt, aber das war's schon.

Im folgenden Code krachts beim öffnen des Queries.

Delphi-Quellcode:
   queStandCUCM.SQL.Clear;
   queStandCUCM.SQL.Add('SELECT Lebenszeichen FROM STANDCUCM where SendingStationNumber = '+ intToStr(frmConfig.CUCMNo)+ ';');
   WriteLog('StandCUCMSQL.log', PChar(queStandCUCM.SQL.Text));
   try
      queStandCUCM.Open;
Die SQL-Abfrage lautet exact:

SQL-Code:
SELECT Lebenszeichen FROM STANDCUCM where SendingStationNumber = 3;

Die Fehlermeldung hierzu lautet:

Zitat:

Der Name '#07' ist in diesem Kontext nicht zulässig. Nur Konstanten, Ausdrücke und Variablen sind hier zulässig. Spaltennamen sind nicht zulässig
Das ganze finde ich äußerst kryptisch und habe die KAADO-Komponenten in Verdacht, die haben auch schon bei anderen Sachen etwas rumgezickt.

Kann jemand meinen Verdacht bestätigen oder ausräumen oder fällt irgendjemand noch was anderes dazu ein.

Sharky 9. Jul 2004 09:17

Re: KAADO und MSSQL-Problem
 
Hai UweR,

ist es auch sicher das der Fehler durch die SQL-Abfrage verursacht wird? Was macht denn WriteLog?

ibp 9. Jul 2004 09:24

Re: KAADO und MSSQL-Problem
 
... könnte es sein, daß du den wert #07 übergibst und der in seiner form das problem ist? versuchs mal damit, daß du den wert in hochkommas setzt...

ibp 9. Jul 2004 09:26

Re: KAADO und MSSQL-Problem
 
Zitat:

Zitat von UweR
Die SQL-Abfrage lautet exact:

SQL-Code:
SELECT Lebenszeichen FROM STANDCUCM where SendingStationNumber = 3;


... übergib doch den wert mit parametern, dann wird automatisch die richtige form gewählt...

UweR 9. Jul 2004 09:35

Re: KAADO und MSSQL-Problem
 
Hallo,

erst mal danke für die schnellen Antworten:

@Sharky:
Es kracht genau bei dem Open-Befehl. WriteLog macht nichts anderes als auf Festplatte in ne LogDatei zu schreiben und das funzt.

@ibp:
Ich hatte auch schon den Verdacht das sich der ASCII-Code 07 bei mir in den Code oder die Anweisung geschlichen hätte, mit sowas ähnlichem habe ich mal meine Debugger ausgehebelt, aber da ist nichts zu sehen sagt mein Hex-Editor. Wenn ich den wert in Anführungszeichen setze würde er als String interpretiert, da aber das Feld SendingStationNumber ein Integer ist krachts dann aus anderen Gründen.

ibp 9. Jul 2004 09:44

Re: KAADO und MSSQL-Problem
 
...versuchs mal damit

Delphi-Quellcode:
   queStandCUCM.SQL.Clear;
   queStandCUCM.SQL.Add('SELECT Lebenszeichen FROM STANDCUCM where SendingStationNumber =:stnr');
   queStandCUCM.ParamByName('stnr').AsInteger:=frmConfig.CUCMNo;
   WriteLog('StandCUCMSQL.log', PChar(queStandCUCM.SQL.Text));
   try
      queStandCUCM.Open;
... oder ich sehe gerade den fehler....

Delphi-Quellcode:
queStandCUCM.SQL.Add('SELECT Lebenszeichen FROM STANDCUCM where SendingStationNumber = '+
                      intToStr(frmConfig.CUCMNo)+ ';');
                                                  ^^^^ weg damit !!!

UweR 9. Jul 2004 09:48

Re: KAADO und MSSQL-Problem
 
Zitat:

... übergib doch den wert mit parametern, dann wird automatisch die richtige form gewählt...
War mein erster Gedanke, doch da haben die KADAO-Parameter rumgezickt und ich kriegte haufenweise Fehlermeldungen (zumindest unter ACCESS) obwohl die Parameter korrekt im SQL-Statement standen und ich Ihnen sogar gesagt habe welcher Datentyp sie nun sind. Ich hab das auch schon unter D7 mit TADO gemacht und hatte nie solche Probleme. Das geht aber hier leider nicht weil ich sonst ein halbes Jahr brauche um mein altes-D5-Projekt incl. aller verwendeten Komponenten auf D7 umzustellen.

UweR 9. Jul 2004 09:57

Re: KAADO und MSSQL-Problem
 
@ibp:
Das mit den Parametern habe ich ja schon mal vergeblich versucht.

By the way: Die Funktion ParamByName (kenn ich auch von IBX oder FIBPlus) gibts leider nicht und man muß die Parameter über den Index ansprechen.

Das mit dem Semikolon könnte ich probieren, stört aber bei allen anderen SQL-Abfragen die ich sonst noch verwende auch nicht weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.

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