2011-12-29 16 views
7

Esistono binding di linguaggio MySQL esistenti e funzionanti per D (in particolare D 2.0 in Windows) ancora sottoposti a manutenzione, aggiornamento o anche solo in remoto? Dozzine di ricerche su google per lo più puntano solo su un codice precedentemente ospitato a http://www.steinmole.de/d/ da un certo Manfred Hansen, ma questo sito è morto e nessuna copia speculare sembra esistere da nessuna parte.Collegamenti di linguaggio MySQL per D?

Sono riuscito a trovare questo: http://code.google.com/p/mysql4d/ così come un altro progetto chiamato DDBI che apparentemente funziona solo con D 1.0 e Tango. Sto avendo problemi a collegare questi, però .. più ricerche di Google indicano che ho bisogno di convertire il libmysql.dll incluso con MySQL per un libmysql.lib utilizzando implib.exe, tuttavia il programma sembra essere mancata per me:

>implib.exe /system libmysql.lib libmysql.dll  
Digital Mars Import Library Manager Version 7.6B1n 
Copyright (C) Digital Mars 2000. All Rights Reserved. 
Error(10): Error: cannot read DLL input file 

Una ricerca google per "non può leggere il file di input DLL" rivela l'orrore totale: zero risultati. Sto facendo qualcosa di completamente sbagliato, o ho qualche versione di MySQL la cui DLL non può più essere convertita?

Versioni:

DMD32 D Compiler v2.056 
MySQL Ver 14.14 Distrib 5.5.8, for Win64 (x86) 
+1

Per i posteri, sembra che il problema che avevo con la DLL era dovuto al fatto che implib.exe non era in grado di leggere i file a 64 bit. Ho scaricato la versione a 32 bit del server di comunità MySQL 5.1 ed è stato in grado di passare libmysql.dll tramite implib.exe per creare una libreria di importazione funzionante, collegabile tramite dmd. Naturalmente, ho ancora numerosi errori/Violazioni di Access Violation dai vari moduli, ma questa è un'altra questione. Il puro modulo D menzionato nella risposta qui sotto sembra però aver completato il lavoro. – ccjuju

risposta

7

ci sono diversi attacchi MySQL, a partire da questo: https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/mysql.d

Ma (IMHO) il progetto più promettente è l'implementazione D nativo del protocollo MySQL. Può essere trovato qui: https://github.com/britseye.

Per chi si è tentato in precedenza, è necessario lo strumento COFFIMPLIB per creare una versione OMF della libreria MySQL libmysql.lib da quello distribuito con MySQL per il file libmySQL.dll.

Aggiornamento: Queste due forcelle del progetto mysqln di Steve sono attive: https://github.com/simendsjo/mysqln e https://github.com/rejectedsoftware/mysql-native.

+0

Grazie per le informazioni! Verificherò questi altri progetti ... tuttavia, ho provato a usare COFFIMPLIB per convertire lib e/o dll inclusi in MySQL 5.5 Questi due file sono inclusi nella distribuzione: – ccjuju

+0

4,175,872 libmysql.dll 23,920 libmysql.lib Il lo strumento non viene eseguito nella DLL, > coffimplib.exe libmysql.dll _libmysql.lib Errore: manca la firma di archivio sebbene venga eseguita correttamente su libmysql.lib. Tuttavia, se provo a collegarmi al file risultante, ottengo ancora i vari errori "Symbol Undefined _mysql_query", ecc. Questo è fuori dal mio tipico regno di esperienza, ma mi chiedo se i caratteri _ debbano essere aggiunti in primo piano ai nomi delle funzioni in qualche modo? Ricordo che questo è un flag passabile a implib.exe, ma coffimplib.exe sembra non avere questa opzione. – ccjuju

Problemi correlati