ďťż

Ładny brzuch

Witam wszystkich.

mam taki problem- korzystam z sqlite3 a dokładniej z CppSQLite3. Łączę się z bazą, zapisuje dane i wszytsko jest ok do momentu zamknięcia bazy. Po ponownym jej otwarciu zmiany nie są zapisane. Próbowałem czegoś w stylu commit ale to polecenie nie działa. Trochę szukałem to wyczytałem, ze sqlite domyślnie wszelkie operacje zatwierdza commitem.
Tyle, że u mnie jakoś nie działa :-(. Będę wdzięczny za pomoc



Pokaż kod. Ostatnio tym się bawiłem... ;)

Witam. Więc tak- z problemem sobie poradziłem w ten sposób, że zaprzestałem korzystać z wrappera. Obsługuje bazę przez zwykłe polecenia (opisane na str www.sqlite.org). Jednak sam fakt, że nie chciało mi działać nadal mnie nurtuje. Poniżej kod
AnsiString Path; CppSQLite3DB Baza; CppSQLite3Query Query; Path = Application->ExeName; Path = ExtractFileDir(Path); Path += "\\Dane\\DataBase.db"; Baza.open(Path.c_str()); if(!Baza.tableExists("emp")) { Baza.execDML("create table emp(empno int, empname char(20));"); } int nRows; Baza.execDML("insert into emp values (24, 'Dahtry Beckhambgrebge');"); Baza.execDML("insert into emp values (83, 'Dagrfebgevrytjuyrt6juytjam');"); Baza.execDML("insert into emp values (183, 'ytrjhybgebgergtr');"); Query =Baza.execQuery("select * from emp where empno > 1;"); while (!Query.eof()) { // tu laduje wyniki do grida // wszystko sie zgadza Query.nextRow(); } Query.finalize(); Baza.close(); // ponownie otwieram baze Baza.open(Path.c_str()); Query =Baza.execQuery("select * from emp where empno > 1;"); while (!Query.eof()) { // tu laduje wyniki do drugiego grida // ale w bazie pusto Query.nextRow(); } Query.finalize(); Baza.close();

Nie mogłem dojść co jest nie tak, więc zrezygnowałem z wrappera i używam poleceń ze str sqlite3. Jednak kod już nie jest tak zwięzły (za to działa :-) )
Użytkownik Gamzi edytował ten post 22 kwiecień 2009, 20:03
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •