Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   String der ein varbyte wird (https://www.delphipraxis.net/178255-string-der-ein-varbyte-wird.html)

arnof 27. Dez 2013 17:02

Datenbank: MYSQL • Version: 5.x • Zugriff über: ADO

String der ein varbyte wird
 
Hallo,

ich habe ein Problem, das sich in Delphi XE2 mit ADODB auftut. Ich habe ein SQL Anweisung, das je nach Inhalt ein Datumsfeld oder ein String zurückliefert.

Bisher ging das ohne Probleme: D5 -> mysqlquerybrowser zeigen das richtige an. In Xe2 kommt ein TVarBytes an. Die Länge des Inhaltes stimmt in Bytes, wenn ich aber in die Bytes schaue steht nicht der richtige Inhalt drin. Statt einem Datum im Textvormat steht und ein Umbruch drin, die restlichen Bytes der richtigen Länge ist nur Müll!

Ich vermute hier ein Konvertierungsproblem in der ADODB.

Hat das schon mal jemand gehabt bzw gelöst ?

arnof 27. Dez 2013 17:19

AW: String der ein varbyte wird
 
Gelöst:

Hier die Lösung; aber nur für die Wissen was Sie hier machen:

in Data.WIN.ADODB

function ADOTypeToFieldType

// adVarBinary: Result := ftVarBytes;
adVarBinary: Result := ftMemo;


Kann ich machen da ich hoffentlich kein ftVarBytes benutze :stupid:

Bitte nicht kommentieren oder bewerten. Höchstens eine bessere Lösung bieten, danke!

Furtbichler 27. Dez 2013 20:21

AW: String der ein varbyte wird
 
Kannst Du das Ergebnis in MYSQL nicht casten?

Bernhard Geyer 27. Dez 2013 22:33

AW: String der ein varbyte wird
 
Wieso über ADO gehen? Es gibt z.B. mit DevArt-Kompos eine Komponentensammlung die einfach für MySQL funktionieren. Hier unnötig über ADO zu gehen (Und zusätzlich noch in die GPL-Falle zu laufen) ist unnötig kompliziert und fehleranfällig.

arnof 28. Dez 2013 07:27

AW: String der ein varbyte wird
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1241243)
Wieso über ADO gehen? Es gibt z.B. mit DevArt-Kompos eine Komponentensammlung die einfach für MySQL funktionieren. Hier unnötig über ADO zu gehen (Und zusätzlich noch in die GPL-Falle zu laufen) ist unnötig kompliziert und fehleranfällig.

Kommt aus der Historie, das ist ein D5 Projekt das auf XE2 gezogen wird. Bei D5 gab es nur die ADO für SQL Server (das war damals Stand der Technik).

Da bei ema z.Z. Wieder alles im Umbruch ist zum Thema dB zugriff muss ich noch warten auf welche Technik ich in Zukunft setzte!

Das Projekt ist zu groß um mal schnell zu wechseln. Der Umzug auf XE2 hat mich schon Monate gekostet!

Bernhard Geyer 28. Dez 2013 08:17

AW: String der ein varbyte wird
 
Zitat:

Zitat von arnof (Beitrag 1241251)
Kommt aus der Historie, das ist ein D5 Projekt das auf XE2 gezogen wird. Bei D5 gab es nur die ADO für SQL Server (das war damals Stand der Technik).

OK.

Zitat:

Zitat von arnof (Beitrag 1241251)
Da bei ema z.Z. Wieder alles im Umbruch ist zum Thema dB zugriff muss ich noch warten auf welche Technik ich in Zukunft setzte!

Eigentlich ist es nicht. Zukunft ist native Zugriffskompos. D.h. mit neuen Delphi-Versionen FireDAC (und für ältere und neuere z.B. DevArt). dbExpress ist m. E. gestorben und ADO ist (für nächste Zeit) nur für Access und MS SQL-Server verwendbar. In Zukunft (laut MS) sollt man wieder ODBC nehmen.

Zitat:

Zitat von arnof (Beitrag 1241251)
Das Projekt ist zu groß um mal schnell zu wechseln. Der Umzug auf XE2 hat mich schon Monate gekostet!

Kommt darauf an wie gut es gekapselt ist. Vermutlich ist aber der DB-Zugriff auf alle Units des Projekt verteilt. Hier müsste erst ein Redesign z.B. mit Bridge-Pattern her.


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