phpbar.de logo

Mailinglisten-Archive

ODBC/TDS/ADO =?iso-8859-1?q?=FCberfl=FCssig=20-=20XML-RPC=20ist=20ein?= universeller Datenbanktreiber =?iso-8859-1?q?f=FCr=20Clients=20und=20Server?= !!!!

ODBC/TDS/ADO überflüssig - XML-RPC ist ein universeller Datenbanktreiber für Clients und Server !!!!

Guido Stepken mysql-de_(at)_lists.bttr.org
Thu, 11 Apr 2002 17:10:24 +0200


ODBC/TDS/ADO überflüssig - XML-RPC ist ein universeller Datenbanktreiber für 
Clients und Server !!!!

Das Problem kommt von einem defekten ODBC - Treiber her. MySQL ODBC Treiber 
ist mit dem Microsoft SDK - Entwickelt, wobei die Entwickler nur einen Teil 
der MySQL - Client TCP/IP Routinen beigesteuert haben. Ich hatte es mal durch 
lock, last_id, insert/delete/update, unlock unter VB gelöst, wobei ich das 
autoincrement Feld dann im MySQL server nicht verwendet hatte. Sowohl MySQL, 
als auch ACCESS Client hatten beide incrementiert...Pech - das führte zu 
einer Kollision (Datensatz von anderem User gesperrt, obwohl keiner da war 
...u.s.w.)
Das läuft nun mit dem neuen ODBC - Treiber korrekt, wie mir ein anderer 
Programmierer sagte. ODBC ist halt ein Filter und recht Fehlerträchtig und 
langsam.... TDS (Tabular Data Stream) ist da viel schneller und auch bei MS 
sehr geschätzt. Weitere Hinweise auf http://www.freshmeat.net bzw. 
Sourceforge....
Ich persönlich benutze weder das eine, noch das andere - ich verwende XML-RPC 
(http://www.xml-rpc.org), welches als ein universeller Treiber, im Grunde für 
alle Datenbanken und alle Clients eine herstellerunabhängige Kommunikation 
ermöglicht. XML-RPC wird auf dem Datenbankserver als ASP, PHP, PERL, C++, 
JAVA -  Servlet installiert (APACHE, IIS, Reines JAVA) und stellt einen so 
einen universellen Datenbanktreiber dar. Der Client (Apache/IIS + PHP, PERL, 
JAVA, oder auch ACCESS VB, Flash !!!!, JAVA Applet im Browser, Active-X 
Plugin ...) kann auch in einer beliebigen Sprache auf einem beliebigen System 
geschrieben sein.
Das Schöne daran ist, daß hierfür nur ca. 5-30 Zeilen Code im Client sowohl 
auch auf dem Server ausreichen, um eine Verbindung herzustellen. Man kann 
sogar in FLASH HTML - Seiten einen Client einbauen, der eine Verbindung zu 
einem Datenbankserver im Internet aufmacht.

Der große Bruder von XML-RPC ist SOAP. Leider ist SOAP nicht genügend 
definiert, und auch das SOAP Apache Modul läuft noch nicht korrekt. Microsoft 
behauptet zwar, es liefe, tut's aber nicht. Beispiel hierfür ist FIAT 
(IVECO), die gerade versuchen, ihre Ersatzteilwesen hierüber zu koordinieren. 
Es klappt einfach nicht, Schwierigekeiten überall. SOAP hat den Vorteil, daß 
man Authentifizierungen einbauen kann, im Gegensatz zu XML Als Ersatz kann 
man dann in ein XML - Feld einen Schlüssel hineinlegen - fertig....der 
Antwortstrom kommt dann nur, wenn der Schlüssel stimmt.
SOAP Implementierung dauert Monate, mit XML-RPC war ich als absoluter 
Einsteiger nach ca. 2 Minuten fertig ....

http://www.little-idiot.de/python/x569.html
http://www.little-idiot.de/python/x643.html

Python für MS findet man unter http://www.activestate.com ...
Interessanterweise kann man in Python auch JAVA Bytecode erzeugen 
(JYTHON)....nett, nicht..?


Schulungskurse mit Apache, PHP, MySQL als Trainingsbeispiel für späteren 
Einsatz mit PostgreSQL + PL/pgSQL oder Oracle + PL/SQL hierzu finden z.B. 
auch hier statt: http://www.gfu.net/s169.html

Gru/3, Guido Stepken

Am Donnerstag, 11. April 2002 16:13 schrieb Michael Koch:
> Am Donnerstag, 11. April 2002 15:51 schrieb Christine Mueller:
> > Hi,
> >
> > Ich habe eine mySQL-Tabelle über ODBC in eine Access Datenbank
> > eingebunden. Die Daten aus der mySQL-Tabelle werden auch
> > angezeigt, aber wenn man in Access einen neuen Datensatz
> > hinzufügt steht nur #Gelöscht da.
> > Wenn ich die Tabelle schließe und sie wieder öffne, dann steht
> > der Datensatz da.
> > Ich hab im Internet schon etwas nachgelesen, da steht, das in
> > der Tabelle ein Primärschlüssel fehlen würde.
> > Ich hab aber in jeder Tabelle einen Primärschlüssel gesetzt.
>
> Benutzt die vielleicht den Feldtype BIGINT ?
>
> Ausserdem versucht Access selbst einen Primary Key zu erzeugen. Das
> funktioniert aber nicht wenn der Primary Key in Mysql ein
> auto_increment-Feld ist. Da bekommt der ODBC-Treiber irgendwelche Problem.
> Wir hatten das damals glaube ich so gelöst, dass die Access-Anwendung nach
> dem INSERT direkt neues SELECT ausgeführt hat, um den Datensatz mit dem
> richtigen PRIMARY KEY zu laden.
>
> Gruss,
> Michael

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive