Zamierzam napisać program w C++, który będzie obsługiwał bazę danych (wykonujące podstawowe operacje typu selecty, wstawianie i usuwanie z tabel). Szukałem jakiegoś prostego API, ale ciągle trafiam na jakieś problemy.
Trafiłem na http://www.alhem.net/sql_cpp_tutorial/index.html - fajne przykłady, pomyślałem, że może to jest to, czego szukam. Tworzenie bazy w sqlite3 - też może być (na szybkości działania mi nie zależy). Postanowiłem odpalić jakiś prosty przykład, żeby zobaczyć, czy to działa:
#include "mysql.h"
#include "libmysqlwrapped.h"
int main()
{
Database db("localhost", "root", "", "tutorialdb");
if (!db.Connected())
{
printf("Database not connected - exiting\n");
exit(-1);
}
return 0;
}
Oczywiście brakowało bibliotek. Ściągnąłem MySQL, zainstalowałem i przerzuciłem biblioteki do odpowiedniego katalogu. Został jeszcze http://www.alhem.net/project/mysql/index.html - utworzyłem to ustrojstwo, też przekopiowałem. Programik z tutoriala oczywiście nie chciał się skompilować - kilkadziesiąt błędów, z których wszystkie, oprócz ostatniego, dotyczą bibliotek:
<font size="1">Compiling...
example1_mysql.cpp
e:\bd\bdtest\bdtest\mysql_com.h(243) : error C2146: syntax error : missing ';' before identifier 'fd'
e:\bd\bdtest\bdtest\mysql_com.h(243) : error C2501: 'SOCKET' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\mysql_com.h(243) : error C2501: 'fd' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\mysql_com.h(417) : error C2065: 'SOCKET' : undeclared identifier
e:\bd\bdtest\bdtest\mysql_com.h(417) : error C2146: syntax error : missing ')' before identifier 's'
e:\bd\bdtest\bdtest\mysql_com.h(418) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(35) : error C2378: 'SOCKET' : redefinition; symbol cannot be overloaded with a typedef
c:\program files\microsoft visual studio\vc98\include\winsock.h(51) : error C2146: syntax error : missing ';' before identifier 'fd_array'
c:\program files\microsoft visual studio\vc98\include\winsock.h(51) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\winsock.h(51) : error C2501: 'fd_array' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\winsock.h(58) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(707) : error C2143: syntax error : missing ';' before '__stdcall'
c:\program files\microsoft visual studio\vc98\include\winsock.h(707) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\winsock.h(707) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(707) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(707) : error C2501: 'accept' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\winsock.h(708) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(710) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(710) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(710) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(712) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(712) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(712) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(714) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(714) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(714) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(716) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(716) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(716) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(718) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(718) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(719) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(721) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(721) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(722) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(724) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(724) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(725) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(735) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(735) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(735) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(741) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(741) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(741) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(743) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(743) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(744) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(749) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(749) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(749) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(751) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(751) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(752) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(754) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(754) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(755) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(757) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(757) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(757) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(759) : error C2143: syntax error : missing ';' before '__stdcall'
c:\program files\microsoft visual studio\vc98\include\winsock.h(759) : error C2501: 'SOCKET' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\winsock.h(759) : error C2086: 'SOCKET' : redefinition
c:\program files\microsoft visual studio\vc98\include\winsock.h(824) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(824) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(825) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(827) : error C2146: syntax error : missing ')' before identifier 's'
c:\program files\microsoft visual studio\vc98\include\winsock.h(827) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(827) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(843) : error C2146: syntax error : missing ')' before identifier 'hSocket'
c:\program files\microsoft visual studio\vc98\include\winsock.h(843) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(850) : error C2059: syntax error : ')'
c:\program files\microsoft visual studio\vc98\include\winsock.h(855) : error C2146: syntax error : missing ')' before identifier 'sListenSocket'
c:\program files\microsoft visual studio\vc98\include\winsock.h(855) : warning C4229: anachronism used : modifiers on data are ignored
c:\program files\microsoft visual studio\vc98\include\winsock.h(863) : error C2059: syntax error : ')'
e:\bd\bdtest\bdtest\libmysqlwrapped.h(273) : error C2143: syntax error : missing ';' before ''
e:\bd\bdtest\bdtest\libmysqlwrapped.h(273) : error C2501: 'sqlite3' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(273) : error C2501: 'db' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(419) : error C2143: syntax error : missing ';' before ''
e:\bd\bdtest\bdtest\libmysqlwrapped.h(419) : error C2501: 'sqlite3_stmt' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(419) : error C2501: 'get_result' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(427) : error C2146: syntax error : missing ';' before identifier 'insert_id'
e:\bd\bdtest\bdtest\libmysqlwrapped.h(427) : error C2501: 'sqlite_int64' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(500) : error C2143: syntax error : missing ';' before '*'
e:\bd\bdtest\bdtest\libmysqlwrapped.h(500) : error C2501: 'sqlite3_stmt' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\libmysqlwrapped.h(500) : error C2501: 'res' : missing storage-class or type specifiers
e:\bd\bdtest\bdtest\example1_mysql.cpp(6) : error C2661: 'Database::Database' : no overloaded function takes 4 parameters
Error executing cl.exe.</span>
Jest na to jakiś sposób?