AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TDBXTypes.WideString-Wertetyp
Thema durchsuchen
Ansicht
Themen-Optionen

TDBXTypes.WideString-Wertetyp

Ein Thema von gee21 · begonnen am 4. Jan 2013 · letzter Beitrag vom 4. Jan 2013
Antwort Antwort
Seite 1 von 3  1 23      
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#1

TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 00:50
Datenbank: MySQL • Version: 4.1 • Zugriff über: dBExpress
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

http://docwiki.embarcadero.com/RADSt..._aktualisieren




Wer kann mir helfen?
Robert
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 00:52
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:00
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?
Robert

Geändert von gee21 ( 4. Jan 2013 um 01:04 Uhr)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#4

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:07
Grüezi mitenand,

Delphi-Quellcode:
  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
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:13
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?
Robert
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#6

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:23
Ja noch da,

Zitat:
Hmm das kann natürlich sein. Aber ehrlich gesagt falls dies so wäre, wie müsste man es richtig machen?
Versuch mal folgendes:

Delphi-Quellcode:
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
Gruß
Volker Zeller

Geändert von Volker Z. ( 4. Jan 2013 um 01:29 Uhr) Grund: sorry ist doch schon etwas spät
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:30
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.


Robert
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:33
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
Robert
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#9

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:34
Hallo,

kannst Du mal das SQL postend

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
gee21

Registriert seit: 3. Jan 2013
199 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TDBXTypes.WideString-Wertetyp

  Alt 4. Jan 2013, 01:37
Wie meinst du das? (SQL Posten)? peinlich
Robert
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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