2011-12-29 11 views
7

Czy istnieją istniejące, działające powiązania języka MySQL dla D (w szczególności D 2.0 pod Windows), które wciąż są utrzymywane, aktualizowane, a nawet zdalnie nagrywane? Dziesiątki wyszukiwań w Google w większości wskazują tylko na kod wcześniej hostowany pod numerem http://www.steinmole.de/d/ przez jednego Manfreda Hansena, ale ta witryna jest już martwa i żadne kopie lustrzane nie wydają się istnieć w dowolnym miejscu.Wiązania języka MySQL dla D?

Udało mi się znaleźć: http://code.google.com/p/mysql4d/, a także inny projekt o nazwie DDBI, który najwyraźniej działa tylko z D 1.0 i Tango. Mam problemy z łączeniem ich, jednak .. więcej wyszukiwań google wskazuje, że muszę przekonwertować libmysql.dll zawarty w MySQL na libmysql.lib przy użyciu implib.exe, jednak program wydaje mi się nie udać:

>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 

Wyszukiwarka google "nie może odczytać pliku wejściowego DLL" ujawnia całkowity horror: zero wyników. Czy robię coś całkowicie nie tak, czy też mam wersję MySQL, której DLL nie może być już konwertowany?

Wersje:

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

Dla potomności wygląda na to, że problem, który miałem z biblioteką DLL, był spowodowany tym, że implib.exe najwyraźniej nie mógł odczytać plików 64-bitowych. Pobrałem 32-bitową wersję serwera społecznościowego MySQL 5.1 i mogłem przekazać ten plik libmysql.dll poprzez implib.exe, aby utworzyć działającą bibliotekę importu dmd. Oczywiście nadal mam wiele błędów związanych z naruszeniem dostępu/segfaultów z różnych modułów, ale to zupełnie inna sprawa. Wydaje się, że czysty moduł D wspomniany w poniższej odpowiedzi wydaje się wykonywać swoją pracę. – ccjuju

Odpowiedz

7

Istnieje kilka Wiązania MySQL, wychodząc z tego: https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff/blob/master/mysql.d

Ale (IMHO) najbardziej obiecujący projekt jest natywna implementacja D protokołu MySQL. Można go znaleźć tutaj: https://github.com/britseye.

Dla tej, którą próbował powyżej, trzeba narzędzie COFFIMPLIB aby stworzyć wersję OMF biblioteki MySQL libmysql.lib z jednej rozproszonej z MySQL do pliku libmySQL.dll.

Aktualizacja: Te dwa rozwidlenia projektu mysqln Steve'a są aktywne: https://github.com/simendsjo/mysqln i https://github.com/rejectedsoftware/mysql-native.

+0

Dzięki za informacje! Sprawdzę te inne projekty ... jednak spróbowałem użyć COFFIMPLIB do konwersji lib i/lub dll zawartych w MySQL 5.5 Te dwa pliki są dołączone do dystrybucji: – ccjuju

+0

4,175,872 libmysql.dll 23,920 libmysql.lib The narzędzie nie działa w bibliotece DLL, > coffimplib.exe libmysql.dll _libmysql.lib Błąd: brak podpisu archiwum mimo że działa poprawnie na libmysql.lib. Jeśli jednak spróbuję połączyć się z plikiem wynikowym, nadal otrzymuję różne błędy "Symbol Undefined _mysql_query" itp. To jest poza moją typową sferą doświadczenia, ale zastanawiam się, czy znaki _ muszą być jakoś dodane na początku nazw funkcji? Przypominam sobie, że jest to flaga łatwa do implib.exe, ale wydaje się, że coffimplib.exe nie ma takiej opcji. – ccjuju

Powiązane problemy