Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++][SQLite] zapisywanie danych

Ostatnio zmodyfikowano 2009-10-25 17:08
Autor Wiadomość
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?
P-11083
DejaVu
» 2009-10-25 16:41:12
m_errorCode = sqlite3_exec( m_dbHandle, tQuery, 0, 0, & m_errorMessage );
, gdzie tQuery to treść zapytania.
P-11085
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.
P-11086
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 );
P-11087
markon
Temat założony przez niniejszego użytkownika
» 2009-10-25 16:53:23
C/C++
#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:(


P-11088
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 ...".
P-11089
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
P-11090
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.
P-11091
« 1 » 2
  Strona 1 z 2 Następna strona