dbExpress und mySQL -> Selectanweisung "Ungültiger Feldtyp"



  • Hi!

    Ich möchte mit den dbExpress-Komponenten Daten aus einer mySQL Datenbank auslesen.
    Einfügen funktioniert einwandfrei. Aber beim Auslesen erhalte ich eine Fehlermeldung:

    dbExpress-Fehler:[0x0003]: Ungültiger Feldtyp

    Mein Code sieht so aus:

    Memo1->Clear();
    
    if (Query1->Active==true)
       Query1->Close();
    
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT `name` FROM `testdb`.`produkte` LIMIT 1");
    
    Query1->Open();
    
    AnsiString test = Query1->FieldByName("name")->AsString;
    

    Die Datenbank und die Tabelle sowie das Feld "name" sind vorhanden! 😕

    Danke euch!!!! 😃



  • probier doch mal anstatt Query1->Open(); das...

    Query1->ExecSQL();
    


  • Nein. Bei einem Select nimmt man Open. ExecSQL bei allen Befehlen, die etwas an der Tabelle ändern.
    Die Hochkommas sehen hier etwas merkwürdig aus. Nimm hier lieber QuotedStr um deine Strings einzufassen.



  • Habe es hinbekommen lag an der falschen libmysql.dll da können wirklich ganz abartige Fehler auftreten ^^ Aber trotzdem Danke 😃



  • sry 4 dp ^^

    Hab ein weiteres Problem bei der TSQLConnection. Wenn ich connecte, geht dies immer nur auf localhost. Egal, was ich unter HostName bei den Params einstelle. 😞



  • Hallo

    Natürlich mußt du den Namen bzw. IP und Port eines Servers als Host eingeben der
    a) unter diesen Daten überhaupt erreichbar ist
    b) auch Zugriffe des benutzten Logins von außen (also außer localhost) zuläßt

    Dann klappt auch der Connect.

    /Edit : Bitte beim nächsten Mal gleich einen neuen Thread aufmachen. Ein Thread ein Thema, ein Thema ein Thread.

    bis bald
    akari



  • Habe den Hostenamen, Benutzernamen und das Passwort richtig eingetragen und der Server (hier im Netzwerk) ist auch durch PHP von meinem Rechner aus erreichbar, also lässt Netzinterne Connections zu.

    Habe jetzt nochmal alles überprüft und erhalte "endlich" eine Fehlermeldung:

    dbExpress-Fehler: [0x000X]: Ungültiger Wert für Benutzername/Passwort
    Datenbank-Server-Fehler: Access denied for user 'root'@'localhost' (using password:YES)

    Hier hat einer das gleiche Problem:
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1311488.html

    Liegt das etwa schon wieder an der libmysql-Version? Kann doch nicht sein, denn auf localhost funktioniert das ganze einwandfrei.

    Ok, es kann daran liegen, dass ich hier lokal mysql 5 drauf hab und auf dem Server 4, aber warum kommt dann in der Fehlermeldung 'root'@'localhost'? Vlt. die Sichtweise von Server?



  • Hallo

    Nur weil ein MySQL-Server für ein lokales PHP erreichbar ist (und das PHP über einen Webserver auch übers Netzwerk) heißt das nicht das der MySQL-Sever auch direkt im Netzwerk erreichbar ist.
    Grade bei Webspace-Servern ist nämlich aus Sicherheitsgründen der MySQL-Server nur über localhost erreichbar, was eben grade so ausreicht um mit lokalen PHP zu arbeiten.
    Wenn du die Möglichkeit hast must du also erstmal in die Benutzerverwaltung des MySQL-Servers eingreifen und dem Nutzer den du verwenden willst zusätzlich zu dem localhost-Zugriff auch den Netzwerkzugriff erlauben (das wirst du nur bei eigen betriebenen schaffen).

    So oder so ist das ein Konfigurationsproblem des MySQL-Servers und nicht von dbExpress oder dem Builder.

    bis bald
    akari


Anmelden zum Antworten