Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Upis u bazu preko komponenata iz Delphija i greska XSQLDA

  • 4 odgovora
  • 2.288 pregleda

Najnovija ↓

Upis u bazu preko komponenata iz Delphija i greska XSQLDA 02.12.2017. u 08:39 · pre 108 meseci #1
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.
Potpis
salash
Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA 02.12.2017. u 11:17 · pre 108 meseci #2
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š.
Potpis
F
Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA 02.12.2017. u 15:01 · pre 108 meseci #3
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š.
Potpis
salash
Re: Upis u bazu preko komponenata iz Delphija i greska XSQLDA 02.12.2017. u 15:41 · pre 108 meseci #4
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme