| Autor |
Beitrag |
kiwicht
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Do 19.06.03 06:54
Hallöle...
erstmal vorneweg: Bis vor kurzem hat noch alles geklappt, und ich kann ich nicht entsinnen, das ich irgendwas im BDE-Admin geändert habe, kann,ich bezüglich dessen aber auch irren...
Jedenfalls starte ich neulich mein "ausgereiftes" Programm, welches über BDE und SQL auf einige ausgewählte Datenbanken zugreift.
Und plötzlich beschwert sich die BDE, das sie den SQL-Befehl "WHERE" nicht mehr kennt.
Wohlgemerkt auf dem Rechner mit einer deutschen BDE-Version. Auf meinem Arbeitsrechner, auf dem ich das Programm entwickle und teste, mit einer englischen BDE-Version läuft alles prima!
Ich gegrübelt und gebastelt, u.a. auch die Konfigurationen der beiden BDE-Installationen untereinander abgeglichen, aber nichts geschah.
Und dann, eher durch Zufall, oder war es Schicksal?, in sämtlichen kritischen "SELECT"-Anweisungen das "=" durch ein "LIKE" ersetzt.
Und siehe da, es funzt!
Geistreich, oder? Kann das einer erklären? Lag es wirklich an den verschieden-sprachigen BDE's? Seit wann gibt es einen so gewichtigen Unterschied zwischen "=" und "LIKE"? Und überhaupt: vor geraumer Zeit hat es doch auch geklappt.....
Naja, vielleicht bin ich ja nicht der einzig verwirrte hier, und ihr habt ne Idee zu der Geschichte...
mfG
|
|
MrSpock
      
Beiträge: 262
|
Verfasst: Do 19.06.03 09:37
Hallo kiwicht,
an der Sprachversion liegt es meines Erachtens nicht. Wenn bestimmte Einträge (Strings) mit einem "=" nicht mehr gefunden würden, mit dem like Operator aber weiterhin erscheinen, könnte es am "LANGDRIVER" liegen, den du unter INIT in der BDE-Verwaltung einstellen kannt. Insbesondere Umlaute und das "ß" werden hier eben anders behandelt. Der Fehler liegt sicher nicht am "WHERE" es könnte aber sein, dass du nach dem WHERE einen Feldnamen benutzt, der z.B. Umlaute benutzt, der aber nicht nicht mit dem Sprachentreiber kompatibel ist.
_________________ Live long and prosper
MrSpock \\//
|
|
kiwicht 
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Do 19.06.03 13:58
| Zitat: | | Wenn bestimmte Einträge (Strings) mit einem "=" nicht mehr gefunden würden, |
Das mein ich ja nicht: Ich meinte, das die BDE nicht mehr mit dem kleinen Wörtchen "WHERE" klarkam. Erst nachdem ich = durch LIKE ersetzt habe.
Hätte er "nur" keine Datensätze gefunden, hätte ich ja auch nicht diese Fehlermeldung bekommen, sondern einfach nur ne leere Tabelle.
| Zitat: | | könnte es am "LANGDRIVER" liegen, den du unter INIT in der BDE-Verwaltung einstellen kannt |
Die Sprachtreiber sind überall gleich, dafür hab ich natürlich schon gesorgt. Ich hab ja extra nochmal die Config-Datei an meinem Abreits-rechner exportiert um sie auf dem anderen Client zu importieren.
Daran lag es ja nicht.
| Zitat: | | Der Fehler liegt sicher nicht am "WHERE" es könnte aber sein, dass du nach dem WHERE einen Feldnamen benutzt, der z.B. Umlaute benutzt, der aber nicht nicht mit dem Sprachentreiber kompatibel ist. |
Nein, das wohl eher nicht, WHERE gehört ja schließlich zum Grundwortschatz von SQL, aber die Fehlermeldung der BDE bezog sich wie gesagt auf WHERE.
Ich hab hier zur Verdeutlichung nochmal meine SQL-Anweisung:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| qFirmendt.SQL.Text := ('SELECT firma1,firma2,firma3,abteilung,strasse,ort,plz,email1' + ',name_ktk1,vorname_k1,telefon1,funk1,fax, firmencode' + ' FROM ' + dbFirmendt + ' WHERE firmencode = ' + QuotedStr(db_kndcd.Text)); qFirmendt.Open; |
noch jemand andere Ideen? Bin echt n bissel verwirrt....auf jedenfall erstmal Danke MrSpock!
mfg
|
|
MrSpock
      
Beiträge: 262
|
Verfasst: Do 19.06.03 17:32
Hallo kiwicht,
gut, wenn du das alles schon geprüft hast, muss es an was anderem liegen  .
Ich habe ja genauso wie du gesagt, dass es nicht am WHERE liegen kann. Denn WHERE gehört zum Grundwortschatz von SQL und kommt nahezu in jedem SELECT Statement vor. Deshalb habe ich auf irgendetwas getippt, was ganz nah bei WHERE steht, was je die Feldnamen sind (das war mein erster Verdacht) und der Tabellenname, was mein neuer Verdacht ist.
Prüfe doch bitte mal, was in dbFirmendt steht. Wenn dort z.B. ein Punkt vorkommt (z.B. firmen.db), dann muss der Name ja in Anführungszeichen stehen. Außerdem würde mich interessieren, wie genau die Fehlermeldung war.
_________________ Live long and prosper
MrSpock \\//
|
|
kiwicht 
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Do 19.06.03 21:33
ich werd morgen mal versuchen die Fehlermeldung zu rekonstruieren...
aber das es an "dbfirmendt" lag, glaub ich ja auch nicht! Denn wie gesagt, auf einem anderen Rechner hat es ja anstandslos funktioniert! Das ist ja das verwirrende...
danke auf jeden fall für deine aufmerksamkeit
mfg
|
|
MAlsleben
      
Beiträge: 303
W2k,WinXP
D3 - DXE3 Enterprise
|
Verfasst: Fr 20.06.03 11:52
Hi Kiwicht,
ich habe auch schon einige Male so ein paar unerklärliche Proble mit der BDE gehabt. Eigenartigerweise hatte es die BDE durch irgendwelche anderen Installation bzw. SQL - Treiber geschossen gehabt. Ich ahbe dann die BDE nochmal neu installiert und gleich auch noch den entsprechenden Datenbank Client, weil manchmal nicht so ganz klar war, wo der Fehler lag, dann hat es wieder funktioniert. Probleme mit den unterschiedlichen BDE Sprachversionen hatte ich noch nicht, wohl aber mit unterschiedlichen Versionen. ( BDE 4.0 und BDE 5.11 usw.) Andere Programme arbeiten ja auch mit der BDE, nicht das da irgendeine Installation was geschossen hat.
Gruß Micha
_________________ Viele Wege führen nach Rom.
|
|
kiwicht 
      
Beiträge: 1021
Win 7, MacOS
Delphi x, VBA, PHP, ...
|
Verfasst: Fr 20.06.03 12:25
hm, also auf dem Rechner wo es zu den mysteriösen Fehlermeldungen kam hab ich eigentlich seit Ewigkeiten nichts anderes installiert. Das ist wirklich nur n Arbeitstier.
Ich werd aber deinen Rat mal befolgen und die BDE nochmal neu aufsetzen.
Vielen Dank!
|
|
|