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

Upis u bazu preko komponenata iz Delphija i greska XSQLDA

[es] :: Pascal / Delphi / Kylix :: Upis u bazu preko komponenata iz Delphija i greska XSQLDA

[ Pregleda: 725 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 50
82.117.197.*



+1 Profil

icon Upis u bazu preko komponenata iz Delphija i greska XSQLDA02.12.2017. u 07:39 - pre 27 meseci
Pozdrav drugari,
Pokusavam da napravim u delphiju akciju koja ce mi upisivati vrednosti u Bazu iz komponenata koo sto je Edit.
Tip podatka u bazu je Integer a evo query kako ja pokusavam:

QDataSet.Active:= false;
QDataSet.SQLs.InsertSQL.Text:= 'Insert into Ugovori (broj_ugovora) VALUES (:broj_ugovora)';
QDataSet.Prepare;
QDataSet.Params[0].Value:= StrToInt(Edit1.Text);
Qugovori.Active:= true;

Ovde dobijam gresku XSQLDS index out of range.

Pokusavam sam i pomocu pFIBScripter sa textom:

pFIBScripter1.Script.Text := 'INSERT INTO UGOVORI (BROJ_UGOVORA) VALUES (111)';
pFIBScripter1.ExecuteScript;

Ovde ne izbaci nikakvu gresku ali se nista ne desi.

Hvala.
salash
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA02.12.2017. u 10:17 - pre 27 meseci
Za insert i update koristi pFIBQuery of FIBPlusa.

Code (delphi):
with qryNapravi do
begin
  close;
  sql.Text := 'insert into ugovori (nesto) values (:param)';
  params[0].AsString := strNekaVarijabla;
  executeQuery;
end;


i ne zaboravi comittati kada završiš.
F
 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 50
82.117.197.*



+1 Profil

icon Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA02.12.2017. u 14:01 - pre 27 meseci
Delimicno reseno.
Uradio sam pomocu ovog coda ovde, mada sam imao jos jednu gresku;
Na formi nisam koristioi Query vec fibDataSet koji ima slicne opcije kao Query ali posto nisam ranije koristio paket FibPlus nisam ni znao da to ima.
U glavnom kada sam iskonfigurisao TpFibQuery proradilo je, ali sada imam jos jedan drugi problem.

Sada mi sve uradi kako treba, i sve mi podatke lepo izlista u BDGrid-u ali problem nastaje kada izadjem iz programa i opet udjem. Tu vidim da ih u opste nije upisao u bazu.
Isto se desava kada direktno otvorim bazu i vidim da nema novih unosa.

To je trenutni problem :(


Citat:
captPicard: Za insert i update koristi pFIBQuery of FIBPlusa.

Code (delphi):
with qryNapravi do
begin
  close;
  sql.Text := 'insert into ugovori (nesto) values (:param)';
  params[0].AsString := strNekaVarijabla;
  executeQuery;
end;


i ne zaboravi comittati kada završiš.

salash
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2605



+68 Profil

icon Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA02.12.2017. u 14:41 - pre 27 meseci
> Sada mi sve uradi kako treba, i sve mi podatke lepo izlista u BDGrid-u ali problem nastaje kada
> izadjem iz programa i opet udjem. Tu vidim da ih u opste nije upisao u bazu. Isto se desava kada
> direktno otvorim bazu i vidim da nema novih unosa.

Verovatno si upoznat sa konceptom transakcija u kontekstu RDBSa, ti uradis izmenu (insert/update) i ona po defaultu ostaje vidljiva samo toj transakciji u okviru koje je i uradjena, kada izadjes iz programa ili udjes direktno u bazu ti koristis neku drugu transakciju koja te podatke ne vidi.

Resenje je da prvu transakciju (ona koja radi izmene) commitujes. Manje vise sve Delphi komponente za rad sa bazom dozvoljavaju automatski handling transakcija ali i rucni, ti verovatno koristis automatski pa stoga nemas tacnu kontrolu nad celim procesom, moja preporuka je da predjes na rucni. Ne poznajem te TpFibXXX komponente pa ti ne mogu tacno reci kako se to radi, otprilike je ovako:

Code:

  qryNapravi.Transaction.StartTransaction;
  qryNapravi.Sql.Text := 'insert into ugovori (nesto) values (:param)';
  qryNapravi.params[0].AsString := strNekaVarijabla;
  qryNapravi.executeQuery;
  qryNapravi.Transaction.Commit;


Dakle blok u kome radis izmenu treba da ubacis izmedju StartTransaction i Commit.
 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 50
82.117.197.*



+1 Profil

icon Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA02.12.2017. u 19:15 - pre 27 meseci
Uradio sam i sve lepo redi :)
Puno hvala :)
salash
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Upis u bazu preko komponenata iz Delphija i greska XSQLDA

[ Pregleda: 725 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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