Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO Sql.LoadFromFile ungültige Zeichen (https://www.delphipraxis.net/97429-ado-sql-loadfromfile-ungueltige-zeichen.html)

Boppe 10. Aug 2007 11:27

Datenbank: MSSql • Version: 2005 • Zugriff über: ADO

ADO Sql.LoadFromFile ungültige Zeichen
 
Hallo Zusammen!
Ich habe versucht eines meiner Projekte von Delphi 7 auf Delphi 2007 zu portieren. Die ADO Queries laden die Sql Statements zur Laufzeit aus verschiedenen Textdateien.

Komischerweise bekomme ich nur Fragezeichen bzw ungültige Zeichen zurück. :wall:

Kann mir irgendjemand sagen woran das liegen könnte?

Delphi 2007 prof., Windows Vista, Textfile Codierung ansi

marabu 10. Aug 2007 12:40

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Herzlich willkommen in der Delphi-PRAXiS, Boppe.

Wie hast du sicher gestellt, dass die Textdateien wirklich ANSI-kodiert sind? Stimmen tatsächliche und erwartete Größe überein? Kannst du ein Beispiel hier anhängen?

Freundliche Grüße vom marabu

Boppe 10. Aug 2007 14:04

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo marabu!
besten Dank für die prompte Antwort.

Die Textdateien habe ich hatte ich unter UltraEdit als ANSI gespeichert - ergo gehe ich davon aus, dass das auch der Wahrheit entspricht :???:

Anbei die Textdatei mit dem Statement. Nix weltbewegendes genau wie der Aufruf
Delphi-Quellcode:
....
QueryResetMessages:= TAdoQuery.Create(nil);
with QueryResetMessages do
begin
 Connection := DBSource;
 Sql.LoadFromFile(ExtractFilePath(Application.Exename)+'\SQL\MailGateway.MessageReset.SQL');
 try
    ExecSql;
 except
    on e: EADOError do
      raise e.Create(e.Message);
 end;
end;
....
Wenn ich mir vor dem open ShowMessage(Sql.Text); ausgeben lasse, erhalte ich nur Fragezeichen bzw. wenn ich den open ausführe die Fehlermeldung
Zitat:

Falsche Syntax in der Nähe von '0x2073'
. Bei CodeGear soll diesbezüglich in der QC irgendwo ein Bugreport stehen (http://qc.borland.com/qc/wc/qcmain.aspx?d=25811) ist allerdings nicht mehr auffindbar.

Bernhard Geyer 10. Aug 2007 14:17

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Fehler in der VCL.

Das Proprety Sql ist als TWideStrings definiert, aber die Klasse TWideStringList kann nur Unicode-Textdateien mit einer festen Byteorder laden. Hat da keiner nachgedacht das hier alle Varianten (ANSI/UTF8/UCS2 mit beiden Byteorders nötig wäre)? :gruebel:

Nimm als Helfer eine TStringlist und lade dort die (ANSI)-Textdatei.

Ich denke da ist ein QC-Report angesagt...

marabu 10. Aug 2007 14:22

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Hallo,

die angehängte Datei ist einwandfrei ANSI-kodiert. Da ich nicht mit der neuen Delphi-Version arbeite, hoffe ich, dass ein anderes DP-Mitglied etwas zu dem von dir vermuteten Bug schreiben kann. Meine Vermutung ist, dass ANSI-Code eingelesen und als UTF-16 interpretiert wird, allerdings ist 0x2073 kein Bestandteil deiner angehängten Datei (Leerstelle gefolgt von lowercase s).

Freundliche Grüße

Bernhard Geyer 10. Aug 2007 14:26

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
QC-Report
Wenn ihr wollt könnt ihr ja Voten - Ist mein neuer nachdem der Orginal (25811) nicht mehr zu finden ist.

marabu 10. Aug 2007 14:29

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Hallo Bernhard,

müssten da nicht noch ältere Einträge sein? Der Fehler scheint mindestens ein Jahr älter zu sein, als der QC-Eintrag.

klick

Freundliche Grüße

Boppe 10. Aug 2007 14:52

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Hallo Bernhard!
Vielen Dank für die schnelle Antwort und das Ticket.

Da scheint wirklich irgendjemand gepennt zu haben.
:wall:

Bernhard Geyer 10. Aug 2007 15:02

Re: ADO Sql.LoadFromFile ungültige Zeichen
 
Zitat:

Zitat von Boppe
Da scheint wirklich irgendjemand gepennt zu haben.
:wall:

Hätten Sie die TNTWare-Kompos gekauft (und würden sie auch verstärkt in der VCL einsetzen) wäre/würde uns mancher offensichtlicher Fehler/Mangel erspart bleiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 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