Ik heb hier de volgende config:
Windows Vista X64 SP1
MySQL 5.1.30
ODBC 5.1.5 Windows x64 Edition
Delphi 2009
Ik gebruik een TDatabase en een TDatasource/TQuery om gegevens uit de MySQL database te halen.
In deze nieuwe config loop ik tegen het volgende probleem aan:
Als je een query koppelt waar je een berekening loslaat op een veld dan snapt Delphi dit niet meer.
Bijvoorbeeld: Select voornaam, achternaam, CONCAT(voornaam, achternaam) as test from tabel
In delphi kun je dan de kolom "test" niet aan het querycomponent toevoegen. (het veld "test" is dan niet zichtbaar als je rechts klikt op de query en kiest voor "add fields...")
Nog een voorbeeld met een iets andere uitwerking:
Select voornaam, achternaam, AES_DECRYPT(wachtwoord, "encryptiekey") as wachtwoord from tabel
In delphi kun je de kolom wachtwoord dan wel toevoegen aan het querycomponent, maar dan worden alle waarden terug gegeven als "VarBytes".
Je verwacht dat je dit dan kan oplossen met een CAST:
Select voornaam, achternaam, CAST(AES_DECRYPT(wachtwoord, "encryptiekey") AS CHAR(30)) as wachtwoord from tabel
Om een eventueel verkeerde waarde weer terug te geven als een string, maar dan wordt de terug gegeven waarde "unknown" en kun je de kolom weer niet toevoegen aan je component.
Wanneer je de query uitvoerd in bijvoorbeeld de MySQL QueryBrowser krijg je wel netjes de juiste uitvoer te zien en het werkt ook prima met Delphi 2006 op Windows 32bits met MySQL ODBC 3.51.
Ik hoop dat het een beetje duidelijk is wat ik bedoel, beetje lastig uit te leggen zonder het te zien.
Iemand enige idee wat hier mis gaat?
Windows Vista X64 SP1
MySQL 5.1.30
ODBC 5.1.5 Windows x64 Edition
Delphi 2009
Ik gebruik een TDatabase en een TDatasource/TQuery om gegevens uit de MySQL database te halen.
In deze nieuwe config loop ik tegen het volgende probleem aan:
Als je een query koppelt waar je een berekening loslaat op een veld dan snapt Delphi dit niet meer.
Bijvoorbeeld: Select voornaam, achternaam, CONCAT(voornaam, achternaam) as test from tabel
In delphi kun je dan de kolom "test" niet aan het querycomponent toevoegen. (het veld "test" is dan niet zichtbaar als je rechts klikt op de query en kiest voor "add fields...")
Nog een voorbeeld met een iets andere uitwerking:
Select voornaam, achternaam, AES_DECRYPT(wachtwoord, "encryptiekey") as wachtwoord from tabel
In delphi kun je de kolom wachtwoord dan wel toevoegen aan het querycomponent, maar dan worden alle waarden terug gegeven als "VarBytes".
Je verwacht dat je dit dan kan oplossen met een CAST:
Select voornaam, achternaam, CAST(AES_DECRYPT(wachtwoord, "encryptiekey") AS CHAR(30)) as wachtwoord from tabel
Om een eventueel verkeerde waarde weer terug te geven als een string, maar dan wordt de terug gegeven waarde "unknown" en kun je de kolom weer niet toevoegen aan je component.
Wanneer je de query uitvoerd in bijvoorbeeld de MySQL QueryBrowser krijg je wel netjes de juiste uitvoer te zien en het werkt ook prima met Delphi 2006 op Windows 32bits met MySQL ODBC 3.51.
Ik hoop dat het een beetje duidelijk is wat ik bedoel, beetje lastig uit te leggen zonder het te zien.
Iemand enige idee wat hier mis gaat?
[ Voor 5% gewijzigd door mister X630 op 27-01-2009 14:02 ]