2 Stimmen

Datenbankunabhängigkeit in Unix/C

Wir haben ein in C geschriebenes System, das unter Solaris und Linux läuft und die Sybase CT-Bibliothek für den Zugriff auf eine Sybase-Datenbank verwendet. Wir generieren die Tabellendefinitionen, Indizes, Stored Procedures und den C-Code aus einer intern entwickelten DDL, um den Arbeitsaufwand und die Fehlerquote zu reduzieren.

Wir möchten Datenbankunabhängigkeit erreichen, so dass wir (als ersten Schritt) Oracle-Unterstützung hinzufügen können.

Wir denken über ODBC oder ESQL/C nach, haben aber keine Erfahrung damit.

Welche Lösung würden Sie vorschlagen (vorzugsweise eine billige und einfache, natürlich). Ist es möglich, eine Lösung aus einer Hand zu bekommen?

3voto

ayaz Punkte 10168

Ich würde sehr empfehlen SQLAPI++ (vielleicht mit dem Nachteil, dass es sich um eine C++-Bibliothek handelt). Außerdem gibt es unixODBC obwohl ich es nie im Code verwendet habe, sondern nur bei der Suche nach portablen Datenbank-APIs darauf gestoßen bin. POCO bietet auch eine einheitliche, portable API (allerdings wieder in C++) für Datenbankoperationen, aber als ich es das letzte Mal überprüft habe, war dieser Teil von POCO befand sich erst in der Anfangsphase der Entwicklung.

1voto

Will Hartung Punkte 110997

ODBC hilft Ihnen, ein portableres System zu schreiben, aber Sie müssen darauf achten, dass Sie Ihr SQL richtig entwickeln, wenn Sie die zugrunde liegende Datenbank nutzen wollen, da das SQL selbst möglicherweise nicht zu 100 % portabel für verschiedene Datenbanken ist, selbst mit den verschiedenen ODBC-Treibern.

1voto

Friedrich Punkte 5828

Iodbc http://www.firstsql.com/iodbc/

oder unix odbc http://www.unixodbc.org/

Sie gehören wahrscheinlich zu den "tragbarsten" Optionen.

Mit freundlichen Grüßen Friedrich

0voto

hometoast Punkte 11253

ODBC bietet Ihnen weitaus mehr Portabilitätsoptionen als ESQL/C.

0voto

Vinko Vrsalovic Punkte 252104

Ich habe mit iODBC um auf SQL Server und mysql zuzugreifen, und ich habe bisher recht gute Ergebnisse erzielt. Ich denke, es würde auch für Oracle funktionieren, aber das würde vom ODBC-Treiber abhängen, und ich habe es bisher noch nicht ausprobieren müssen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X