[ milex @ 27.05.2005. 09:58 ] @
KAd uradim post u ADOTable componente dobijem poruku "Record not found or changed by another user" i ne odradi post. Gde gresim sve mi je vezano sa ADOTable sa DBEdit poljima. Polja su sva text, smo imam jedan dbimage.




<MILEX>
[ sasas @ 27.05.2005. 10:48 ] @
Nisi napisao koju bazu koristiš? Da li imaš u tabeli primarni ključ? Imaš li neke default vrednosti u tabeli? Ja bih ovako odokativno rekao da je problem u tome da imaš default-e postavljene za neka polja u bazi, probaj da ih izbaciš pa vidi kako radi stvar...

ss.
[ milex @ 27.05.2005. 11:16 ] @
Postoji kljuc i postoje default vrednosti i sve je popunjeno kako treba i opet ne radi.
[ sasas @ 27.05.2005. 11:23 ] @
Probaj da izbaciš default vrednosti na svim poljima u toj tabeli, čisto da utvrdimo da li je do toga. Kod kuće imam neki kood koji rešava taj problem, bar na Access bazi, pa mogu poslati kasnije popodne. Btw, ne reče koju bazu ti koristiš?

ss.
[ milex @ 27.05.2005. 11:24 ] @
Baza je MS SQL 2000. Imam jednu default vrednost i onaj je tacna 100%.
[ DelphiBoy @ 27.05.2005. 12:34 ] @
Da li koristis neko polje kao DateTime ili ako ga upisujes probaj da trimujes milisekunde. Desava se da SQLServer moze da izgubi milisekunde dok upisuje podatke. Postoji i mogucnost da promenis ponasanje ADO komponente menjajuci vrednost "Update Criteria" u neku od sledecih: adCriteriaKey, adCriteriaAllCols (BDE default), adCriteriaUpdCols (ADO default) i adCriteriaTimeStamp. Kod ide ovako:
Code:
ADOTable1.Properties['Update Criteria'].value :=adCriteriaKey;

O ovome je napisano malo detaljnije na:
[url]http://support.microsoft.com/default.aspx?scid=kb;EN-GB;q190727&GSSNB=1[/url]

Nadam se da ti je ovo nesto pomoglo ...
[ milex @ 27.05.2005. 12:43 ] @
Ovo mi daje profiler:
SET FMTONLY ON select e_mail,e_mail from ORGANIZACIJE SET FMTONLY OFF

exec sp_executesql N'update ORGANIZACIJE set
e_mail = @P1
where
e_mail = @P2
', N'@P1 nvarchar(70),@P2 nvarchar(70)', N'[email protected]', N'[email protected]'

IF @@TRANCOUNT > 0 ROLLBACK TRAN

i sad ide gore pomenuta greska.
[ DelphiBoy @ 27.05.2005. 12:59 ] @
Citat:

The default way Ado components using clientside cursors find a record in the
database to update is to use all the field values of the original record to
match a record on the server. If any of those fields have different values on
the server you will get an error that the record can not be found.

Ja mislim da pravi problem u delu:
Code:
where
e_mail = @P2
[ milex @ 27.05.2005. 13:08 ] @
Sigurno je to, ali onda na koji način da uradim update a da to nije pisanje UPDATE organizacije set.....
[ DelphiBoy @ 27.05.2005. 13:31 ] @
Da li si probao da zakljucas tablu na nivou reda dok radis update? Znaci zakljucas je, uradis transakciju i otkljucas. Vodi samo racuna ako ne uspe transakcija da ne ostane zakljucana.;-)