AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi umysqlvio typumwandlung
Thema durchsuchen
Ansicht
Themen-Optionen

umysqlvio typumwandlung

Ein Thema von SparrowSX · begonnen am 13. Nov 2009 · letzter Beitrag vom 27. Apr 2010
Antwort Antwort
SparrowSX

Registriert seit: 31. Mai 2008
Ort: Wilhelmshaven
7 Beiträge
 
RAD-Studio 2009 Arc
 
#1

umysqlvio typumwandlung

  Alt 13. Nov 2009, 11:44
Datenbank: MySQL • Version: 5.x • Zugriff über: directmysql
kurze vorgeschichte:
hab ein prog mit der dbexpress komponente geschrieben was auf einem anderen pc ohne delphi leider nicht läuft. (gibt anscheinend auch keine lösung dafür)
hatte nun vor das ganze über directmysql zu lösen. - leider tritt dort folgender fehler auf:

[DCC Fehler] umysqlvio.pas(964): E2089 Ungültige Typumwandlung


weiter unten der gleiche fehler nocheinmal:

[DCC Fehler] umysqlvio.pas(980): E2089 Ungültige Typumwandlung




jemand ne lösung?

nochmal wichtige daten:
- delphi 2009 arc
- DirectMySQLObjects122
(- mysql-server 5.x)
Christian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: umysqlvio typumwandlung

  Alt 13. Nov 2009, 11:47
Was steht den in der Zeile des Sourcecodes?
Markus Kinzler
  Mit Zitat antworten Zitat
SparrowSX

Registriert seit: 31. Mai 2008
Ort: Wilhelmshaven
7 Beiträge
 
RAD-Studio 2009 Arc
 
#3

Re: umysqlvio typumwandlung

  Alt 13. Nov 2009, 11:52
Delphi-Quellcode:
          {$IFNDEF _WIN_}
          ffcntl_mode := fcntl(fsd, F_GETFL);
          {$ENDIF}
          {$IFDEF _WIN_}
          vio_blocking(false);
          {$ENDIF}
          //try to resolve the host <- Zeile 964
          fillchar(sock_addr,sizeof(sock_addr),#0);
          sock_addr.sin_family := AF_INET;
          ip_addr := {$IFOPT R+}cardinal{$ENDIF}(inet_addr(pchar(host))); // thanks Jiri Barton
          if (ip_addr <> INADDR_NONE) then
            sock_addr.sin_addr:=in_addr(ip_addr)
          else
            begin
              hp:=gethostbyname(pchar(host));
              if (hp=nil) then
                begin
                   flast_errno:=CR_UNKNOWN_HOST;
                  {$IFDEF _WIN_}
                  flast_error:=format(client_errors[(flast_errno)-CR_MIN_ERROR],[host, WSAGetLastError]);
                  {$ELSE}
                  flast_error:=format(client_errors[(flast_errno)-CR_MIN_ERROR],[host, errno]);
                  {$ENDIF}                                                                          <- Zeile 980
                   result:=-7; //we can't connect
                        closesocket(sock);
                     exit;
                end;
Christian
  Mit Zitat antworten Zitat
SparrowSX

Registriert seit: 31. Mai 2008
Ort: Wilhelmshaven
7 Beiträge
 
RAD-Studio 2009 Arc
 
#4

Re: umysqlvio typumwandlung

  Alt 30. Jan 2010, 13:00
Nachdem ich die Suche nach einer Antwort vorerst aufgegeben hatte bin ich nun durch zufall auf die Lösung gestoßen.

Anscheinend funzt directmysql mit delphi 2009 und 2010 nicht nur bei mir nich...
In einem "alten" Forum von sourceforge.net hat sich jemand die arbeit gemacht und die datei/dateien überarbeitet.
[http://sourceforge.net/projects/dire...ssage=7915351]


Die funktionierenden directmysql Dateien für Delphi 2009 und 2010 bietet er hier zum Download an:
http://rapidshare.com/files/32387867...ysql_d2010.zip


Ich habe es bereits getestet und es funktioniert einwandfrei!
Christian
  Mit Zitat antworten Zitat
Schorschi5566

Registriert seit: 6. Feb 2006
197 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: umysqlvio typumwandlung

  Alt 27. Apr 2010, 01:00
Hallo zusammen,

Zitat von SparrowSX:
Ich habe es bereits getestet und es funktioniert einwandfrei!
da kann ich leider nicht zustimmen.

Für "normale" Felder scheint die angepasste Version zu funktionieren aber bei exotischeren Feldtypen scheint es Probleme mit den Feldlängen zu geben, was ziemlich heftige Fehler verursachen kann.

Ich habe schon mal drüberdebuggt und bin auf falsche Feldlängen in read_rows gestoßen. Das Ganze im Zusammenhang mit Datensätzen, die ein Feld vom Typ Mediumtext enthalten haben.

Workarround ist eine Abfrage auf genau dieses Feld zu machen anstatt auf * oder mehrere Felder. Zumindest hat das bisher funktioniert.

Selektiert man zusätzlich Felder, die nach dem betreffenden Feld im Datensatz stehen, werden diese teilweise an das Mediumtext-Feld angehängt. Merkt man das nicht, dann zerballert man sich die DB mit fehlerhaften Feldinhalten. Nicht weiter tragisch, aber in halbwegs ernsthaften Anwendungen nicht verwendbar.

Schöne Sch...

Muss ich wohl sämtliche DB-Projekte auf mysql.pas mit libmySQL.dll umschreiben.


Wollte nur mal schnell 'ne Warnung rausgeben. Vielleicht erreiche ich den Autor/Umschreiber und er kann den Fehler beheben. Mir ist der Code an der Stelle etwas zu kryptisch.


Viele Grüße,
Schorsch
Uwe
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:51 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