2011-12-29 2 views
7

Существуют ли существующие, работающие привязки языка MySQL для D (особенно D 2.0 под Windows), которые все еще поддерживаются, обновляются или даже удаляются? Десятки поисковых запросов Google в основном указывают только на некоторый код, ранее размещенный на http://www.steinmole.de/d/ одним Манфредом Хансеном, но этот сайт теперь мертв, и никакие зеркальные копии, кажется, нигде не существуют.Языковые привязки MySQL для D?

Мне удалось найти это: http://code.google.com/p/mysql4d/, а также еще один проект под названием DDBI, который, по-видимому, работает только с D 1.0 и Tango. У меня возникли проблемы с их связыванием, хотя .. больше поисковых запросов Google показывает, что мне нужно преобразовать libmysql.dll, включенный в MySQL, в libmysql.lib, используя implib.exe, однако программа, кажется, терпит неудачу для меня:

>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 

Поиск по Google для «не может читать входной файл DLL» показывает полный ужас: нулевые результаты. Я делаю что-то совершенно неправильное или у меня есть версия MySQL, чья DLL больше не может быть преобразована?

Версия:

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

Для потомства, похоже, проблема, с которой я столкнулась с DLL, связана с тем, что implib.exe, по-видимому, не может читать 64-разрядные файлы. Я загрузил 32-битную версию сервера сообщества MySQL 5.1 и смог передать этот libmysql.dll через implib.exe для создания рабочей библиотеки импорта dmd-linkable. Конечно, у меня все еще есть многочисленные ошибки нарушения доступа/segfaults из различных модулей, но это совсем другое дело. Чистый модуль D, упомянутый в ответе ниже, кажется, выполняет свою работу, хотя. – ccjuju

ответ

7

Там несколько привязок MySQL, начиная с этим: https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/mysql.d

Но (ИМХО) наиболее перспективным проектом является родной реализацией D протокола MySQL. Его можно найти здесь: https://github.com/britseye.

Для того, вы пытались выше, вам нужен COFFIMPLIB инструмент для создания версии OMF библиотеки MySQL libmysql.lib из одной распределенной с MySQL для файла libmySQL.dll.

Обновление: Эти две вилки проекта mysqln от Steve активны: https://github.com/simendsjo/mysqln и https://github.com/rejectedsoftware/mysql-native.

+0

Спасибо за информацию! Я проверю эти другие проекты ... однако я попытался использовать COFFIMPLIB для преобразования lib и/или dll, включенных в MySQL 5.5. Эти два файла включены в дистрибутив: – ccjuju

+0

4,175,872 libmysql.dll 23,920 libmysql.lib инструмент не запускается в DLL, > coffimplib.exe libmysql.dll _libmysql.lib Ошибка: отсутствует подпись архива , хотя он успешно запускается на libmysql.lib. Однако, если я попытаюсь связать с результирующим файлом, я все равно получаю различные ошибки «Symbol Undefined _mysql_query» и т. Д. Это из моего типичного опыта, но мне интересно, нужно ли добавлять _ символов в начале имен функций? Я помню, что это флаг, доступный для implib.exe, но у coffimplib.exe, похоже, нет такого варианта. – ccjuju

Смежные вопросы