Witam, czy za pomocą biblioteki sqlite można stworzyć bazę danych w SQL.
Wiem, że można ją odczytywać.
Można. Wystarczy stworzyć odpowiednie zapytania i je wywołać za pomocą funkcji bibliotecznych - dokładniej z poziomu kodu aplikacji możesz tworzyć bazę danych.
Możesz również użyć konsoli sqlite i tam wklepać wszystkie polecenia, lub przygotować sobie skrypt DDL.
Ale można tez użyć graficznego interfejsu do obsługi SQLite - poszukaj programu SQLiteAdmin - trochę toporny w działaniu, ale pozwala w miarę łatwy, aczkolwiek czasem irytujący sposób na zarządzanie strukturą bazy.
Tutaj http://souptonuts.sourceforge.net/readme_sqlite_tutorial.html i tutaj http://www.webdotdev.com/nvd/content/view/347/ znajdziesz wskazówki.
A może wiesz jaka funkcja służy do zapytań?
Z tego co pamiętam, to w C++ była to funkcja prepare, ale nie jestem pewien ( SQLite używałem główne z PHP ). Tutaj http://www.sqlite.org/cintro.html powinieneś znaleźć jakieś wskazówki.
Herk,dzięki wielkie za zainteresowanie tematem
sqlite3_step()
sqlite3_exec()
a ta funkcje do czego służą?
Nie jestem pewien, dlatego lepiej przeszukaj dokumentację.
Funkcja step służy z tego co pamiętam, do wykonania kroków wcześniej przygotowanego zapytania za pomocą funkcji bind.
Funkcja exec wykonuje zapytanie na bazie danych.
Zerknij sobie jak wygląda przykładowy kod, na tej stornie :
http://rpetryniak.blogspot.com/2009/07/skadowanie-obrazow-w-bazie-danych.html
Dzięki wszystko się zgadza. A funkcja sqlite3_column() do czego jest?
A do czego służy: sqlite3_bind ()
Na stronie którą Ci podałem, jest pokazane jak działa i do czego służy funkcja bind :
Jak widzisz, w zapytaniu
char insert_str[] = "insert into photos(photo,filename,dimx,dimy,dimz,dimv) values (?,?,?,?,?,?)";
,wartości które chcesz zapisać w bazie, opisane są znakami ?
Funkcja bind jest później wywoływana tyle razy, ile wartości do bazy chcesz przesłać.
//Wstawienie danych do tabeli
sqlite3_bind_blob(insert_stmt, 1, image.ptr(), image.size() * sizeof(unsigned char), SQLITE_STATIC);
sqlite3_bind_text(insert_stmt, 2, file_i, strlen(file_i)* sizeof(unsigned char), SQLITE_STATIC);
sqlite3_bind_int (insert_stmt, 3, image.dimx());
sqlite3_bind_int (insert_stmt, 4, image.dimy());
sqlite3_bind_int (insert_stmt, 5, image.dimz());
sqlite3_bind_int (insert_stmt, 6, image.dimv());
Natomiast funkcja column pokazuje informacje o danej kolumnie.
OK,Herk, dzięki wielkie za pomoc