Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa sqlite3

[es] :: C programiranje :: Problem sa sqlite3

[ Pregleda: 900 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

slavkot

Član broj: 18657
Poruke: 166
81.93.86.*



Profil

icon Problem sa sqlite307.11.2005. u 20:46

Pozdrav, nikako ne mogu naći fajl sqlite3.h, pretražio sam čitav sajt http://www.sqlite.org, ali bez uspjeha.
Pokušavam da kreiram jednostavan program tj. primjer sa istog sajta, tačnije ovdje
http://www.sqlite.org/quickstart.html ,
ali nemam fajl sqlite3.h, gdje bi ga našao? Pronašao sam samo sqlite3.dll i sqlite3.def, ali šta s'tim ?
Koristim dev-cpp.
07.11.2005. u 20:46 

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 379
213.244.197.*

Sajt: www.hidmet.sr.gov.yu/lati..


Profil

icon Re: Problem sa sqlite307.11.2005. u 21:29
Da li koristis sqlite devpak http://www.devpaks.org/details.php?devpak=94 (direktan link http://prdownloads.sourceforge...evpaks/sqlite-3.2.6-1ew.DevPak ) ili sam kompajliras?
Predpostavljam da ce ti devpak ubaciti sqlite3.h u <include> folder.
Ja dosad nisam koristio sqlite, ali sam ga skoro razmatrao kao mogucnost i tada sam naisao na ovo http://www.yeohhs.com/articles/devcppsqlite.htm , mozda ti bude koristilo.
idb
07.11.2005. u 21:29 

slavkot

Član broj: 18657
Poruke: 166
81.93.86.*



Profil

icon Re: Problem sa sqlite307.11.2005. u 22:00
Sad sam instalirao devpak i sve radi kako treba, hvala na pomoći
07.11.2005. u 22:00 

slavkot

Član broj: 18657
Poruke: 166
81.93.86.*



Profil

icon Re: Problem sa sqlite308.11.2005. u 14:16
Poz., opet ja, potrebno mi je još nekakvih informacija u vezi SQlite3, ne snalazim se baš sa onim podacim sa njihovog sajta:

1. Kako da kreiram bazu podataka za ovaj sqlite?
2. Da li tu bazu podataka mogu editovati (dodavati nove vrijednosti i brisati) koristeći prog. jezik C tj. šta je ekvivalentno naredbama INSERT, DELETE, CREATE TABLE i slično, ako ima nekakav primjer bilo bi dobro.
3. Kako da se povežem sa nekom bazom podataka i kako da procitam podatke iz neke tabele i da ih prikažem na ekranu koristeći prog. jezik C ili šta je ekvivalentno sljedećem:

Code:

SELECT imena_korisnika, email_korisnika
FROM ime_tabele;

08.11.2005. u 14:16 

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Problem sa sqlite308.11.2005. u 15:18
Na strani koju si ostavio gore ( http://www.sqlite.org/quickstart.html ) imas jednostavan C program iz koga se vidi u osnovi kako se radi. Ja sam radio sa ranijim verzijama, ali trebalo bi da je isto:

1. Baza se otvara sa sqlite3_open(), a ukoliko ne postoji bice automatski kreirana. Inace baza je jedan fajl na disku.

2. Naravno da mozes, a radi se upravo tako da izvrsavas SQL komande preko funkcije sqlite3_exec(), na primer sqlite3_exec(db, "INSERT INTO tabela ....itd", NULL, 0, NULL). Tabelu kreiras isto tako, uz odgovarajuci CREATE TABLE query naravno. Pogledaj sintaksu za sqlite3_exec, kao i spisak SQL komandi koje sqlite razume: http://www.sqlite.org/lang.html

3. Podatke iz neke tabele citas isto tako, preko sqlite3_exec(db, "SELECT * FROM tabela", callback_funkcija, 0, NULL), s tim sto napravis kao parametar sqlite3_exec dajes tvoju callback funkciju koja ce biti pozvana svaki put kada se procita red iz tabele.
Never trust an operating system you don't have sources for.
08.11.2005. u 15:18 

slavkot

Član broj: 18657
Poruke: 166
81.93.86.*



Profil

icon Re: Problem sa sqlite308.11.2005. u 16:35
Ok, uspio sam otvoriti i procitati, ali ne kontam šta radi funkcija "callback"?
U njihovom primjeru ona izgleda ovako:
Code:

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
  int i;
  for(i=0; i<argc; i++){
    printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
  }
  printf("\n");
  return 0;
}


a poziva se
Code:

sqlite3_exec(db,"SELECT one FROM tbl1", callback, 0, &zErrMsg);


koja je veza, gdje su argumenti funkcije "callback"? Na šta pokazuje "azColName" i da li su ovi "argc" i "argv" isti kao i oni u
Code:
int main(int argc, char **argv)


Da li moja svaka "callback" funkcija mora imati gore navadena 4 argumenta?

08.11.2005. u 16:35 

bzero
dev null
europe

Član broj: 5907
Poruke: 371
..mtsns-ns.customer.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Problem sa sqlite308.11.2005. u 17:05
Callback funkcija uvek je deklarisana kao:

Code:

static int callback(void *NotUsed, int argc, char **argv, char **azColName)


argc i argv su argumenti ove funkcije i nemaju veze sa argumentima funkcije main.

Inace argc je jednak broju kolona u tabeli, u argv su vrednosti kolona, a u azColName imena kolona. Ako imas tabelu:

Code:

id    name
=============
1    pera
2    djoka
3    laza


u prvom pozivu callback funkcije:
argc = 2
argv[0] = "1"
argv[1] = "pera"
azColName[0] = "id"
azColName[1] = "name"

u drugom pozivu callback funkcije:
argc = 2
argv[0] = "2"
argv[1] = "djoka"
azColName[0] = "id"
azColName[1] = "name"

itd...

Inace u primeru koji je dat na sajtu, callback funkcija jednostavno stampa nazive svih kolona i njihove vrednosti.
Never trust an operating system you don't have sources for.
08.11.2005. u 17:05 

slavkot

Član broj: 18657
Poruke: 166
81.93.86.*



Profil

icon Re: Problem sa sqlite308.11.2005. u 17:38
shvatio sam, hvala ti na objašnjenjima
08.11.2005. u 17:38 

[es] :: C programiranje :: Problem sa sqlite3

[ Pregleda: 900 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.