![]() |
Datenbank: MySQL • Version: 4.1 • Zugriff über: dBExpress
TDBXTypes.WideString-Wertetyp
Hallo alle zusammen.
Habe ein Programm das auf einen MySQL Datenbank auf einem HP Server zugreifen soll (Werte lesen und ändern). Dank diesem Forum konnte ich nun einen Verbindung mit dem Server herstellen. (Nach einer Installation eines älteren Connectors (libmysql.dll +php_mysql) Nun ist es aber leider so, dass ich teils Informationen aus der Datenbank abrufen kann doch bei den meisten kommt eine Fehlemeldung und bricht ab: Auf TDBXTypes.ZSTRING-Wertetyp kann nicht als TDBXTypes.WideString-Wertetyp zugegriffen werden. So sieht der Code aus der es verursacht:
Delphi-Quellcode:
var
FieldNamesList: TStringList; SQLStmt: String; I: Integer; begin // Eine Tabelle ist jetzt ausgewählt, daher nun die entsprechenden Steuerelemente aktivieren. CheckBoxActive.Enabled := True; ButtonApply.Enabled := True; TableName := ListBox1.Items[ListBox1.ItemIndex]; //Tabellennamen abrufen // Feldnamen (Spaltennamen) für diese Tabelle abrufen. FieldNamesList := TStringList.Create; FieldNamesList.Clear; SQLConnection1.GetFieldNames(TableName, FieldNamesList); // Select-SQL-Anweisung für alle Felder erstellen. if FieldNamesList.Count > 0 then begin SQLStmt := 'select '; for I := 0 to FieldNamesList.Count - 1 do begin SQLStmt := SQLStmt + FieldNamesList[I] + ','; end; SQLStmt[Length(SQLStmt)] := ' '; SQLStmt := SQLStmt + 'from '+TableName; end else // Feldnamen nicht gefunden, daher '*' verwenden SQLStmt := 'select * from '+TableName; FreeAndNil(FieldNamesList); // SQL-Anweisung zum Abrufen aller Tabellendaten erstellen. EditSQL.Text := SQLStmt; // CommandText auf SQL-Anweisung setzen. SQLDataSet1.CommandText := EditSQL.Text; if ClientDataSet1.Active then ClientDataSet1.Close; ClientDataSet1.Open; CheckBoxActive.Checked := True; end; Ich habe diesen Code von folgendem Toutorial. Da ich noch ein ziemmlicher Anfänger bin :-) ![]() Wer kann mir helfen? |
AW: TDBXTypes.WideString-Wertetyp
Welche Delphi-Version?
Könnte mir vorstellen das die dbExpress-Version nicht mit der libmysql-DLL zusammenspielt. Am wenigsten Probleme hat man mit den TDataset-Nachfahren von DevArt. Kosten zwar ein paar €, verhindern aber das man zu schnell graue Haare bekommt oder sie sich ausreißt :-) |
AW: TDBXTypes.WideString-Wertetyp
Hallo Danke für die schnelle Antwort.
Ich habe Delphi 2009 Prof. 12.0.3170.16989 Graue Haare will ich zwar nicht aber vielleicht gibt es doch eine Lösung ohne weitere Komponenten oder so? ;-) |
AW: TDBXTypes.WideString-Wertetyp
Grüezi mitenand,
Delphi-Quellcode:
Gruß
if FieldNamesList.Count > 0 then
begin SQLStmt := 'select '; for I := 0 to FieldNamesList.Count - 1 do begin SQLStmt := SQLStmt + FieldNamesList[I] + ','; // Kann es hier sein, dass Dein SQL-Statement select Name1, Name2, ... NameN, <- Komma beachten generiert end; SQLStmt[Length(SQLStmt)] := ' '; SQLStmt := SQLStmt + 'from '+TableName; // und hier // select [..], <- Komma beachten from TableName und es scheppert? end |
AW: TDBXTypes.WideString-Wertetyp
Ja hoi
Auch noch da? :-) Hmm das kann natürlich sein. Aber ehrlich gesagt falls dies so wäre, wie müsste man es richtig machen?:oops: |
AW: TDBXTypes.WideString-Wertetyp
Ja noch da,
Zitat:
Delphi-Quellcode:
Gruß
var
s : string; begin if FieldNamesList.Count > 0 then begin SQLStmt := 'select '; for I := 0 to FieldNamesList.Count - 1 do if s = '' then s := FieldNamesList[I] else s := s + ',' + FieldNamesList[I]; SQLStmt := SQLStmt + [B]s[/B] + ' from '+TableName; end end |
AW: TDBXTypes.WideString-Wertetyp
Hmm jetzt hab ich leider folgende Meldung:
You have an error in your SQL syntax; check the Manual that corresponds to your MySQL Server Version for the right Syntax to use near from product_related' at line 1. :?: |
AW: TDBXTypes.WideString-Wertetyp
Oh ich merke gerade das die alte Meldung in den meisten Fällen auch noch kommt. Je nach Eintrag in der Datenbank kommt die eine oder andere Meldung
|
AW: TDBXTypes.WideString-Wertetyp
Hallo,
kannst Du mal das SQL postend Gruß |
AW: TDBXTypes.WideString-Wertetyp
Wie meinst du das? (SQL Posten)? :oops:peinlich:oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:34 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 by Thomas Breitkreuz