markon Temat założony przez niniejszego użytkownika |
[C++][SQLite] zapisywanie danych » 2009-10-25 16:14:04 Powiedzcie mi czy mam dobry tok myślenia: Mam zamiar wysłać zapytanie w celu zapisania wartości w bazie danych. Używam sqlite3_open() do połączenia, a następnie prepare(konwertuje zapytanie z tablicy char[] na zmienną sqlite3_stmt). Następnie wpisuje wartości za pomocą bind(), a następnie używam step(). Później wywołuje sqlite3_exec(). Cz dobrze robię? Jeśli nie to co jest źle? |
|
DejaVu |
» 2009-10-25 16:41:12 m_errorCode = sqlite3_exec( m_dbHandle, tQuery, 0, 0, & m_errorMessage ); , gdzie tQuery to treść zapytania. |
|
markon Temat założony przez niniejszego użytkownika |
» 2009-10-25 16:47:05 Nie rozumiem o co Ci chodzi. Chcę abyście określili czy dobrze myślę, a jeśli źle to żebyście mnie poprawili. |
|
DejaVu |
» 2009-10-25 16:48:59 Nieważne czego użyjesz do przygotowania zapytania. Ważne, żeby do funkcji sqlite3_exec trafił tekst. Przykładowo: m_errorCode = sqlite3_exec( m_dbHandle, "INSERT INTO tabela (kolumna1,kolumna2) VALUES (wartosc1,wartosc2)", 0, 0, & m_errorMessage ); |
|
markon Temat założony przez niniejszego użytkownika |
» 2009-10-25 16:53:23 #include <iostream> #include <sqlite3.h>
using namespace std;
int main( int argc, char ** argv ) { char * error = 0; int rc; sqlite3 * db; sqlite3_stmt * steatment; sqlite3_open( "database", & db ); sqlite3_exec( db, "INSERT INTO tabela (kolumna1,kolumna2) VALUES (wartosc1,wartosc2)", 0, 0, & error ); sqlite3_close( db ); return 0; }
Mam taki kod, ale baza danych ma nadal zero bajtów pomocy:( |
|
DejaVu |
» 2009-10-25 16:59:21 Skoro baza ma zero bajtów to znaczy, że nawet tablicy w niej nie utworzyłeś. Najpierw musisz użyć "CREATE TABLE tabela ...". |
|
markon Temat założony przez niniejszego użytkownika |
» 2009-10-25 17:03:51 Faktycznie teraz baza zajmuje parę KB, dzięki wielkie!! Ale teraz parę pytań. Czy wystarczy samo exec do wysłania zapytania? a co z bind(), prepare(), step() - zdaje mi się że te funkcje też mają z zapytaniami coś wspólnego |
|
DejaVu |
» 2009-10-25 17:06:39 Te funkcje o których mówisz są tylko po to, żeby łatwiej było zapytanie sklecić do postaci tekstowej, gdy masz zmienne itp. |
|
« 1 » 2 |