Newsgroup: it.comp.lang.delphi
Titolo: Database MySql

Sto utilizzando un database MySql con Delphi.
Mi connetto tramite BDE (consigli su altri motori?)
Quando inserisco o modifico un record la prima volta tutto bene.
Quando faccio la seconda operazione mi dà un'exception:
Couldn't perform the edit because another user changed the record
Ho provato a creare nuovi database con una sola tabella, e fatto delle
prove, sempre uguale!
Colpa di MySql o di Bde? Cosa devo fare?
Grazie
Claudio

 ha scritto nel messaggio
news:J8fHa.94248$lK4.2...@twister1.libero.it...


 Mi connetto tramite BDE (consigli su altri motori?)
[cut]
Puoi usare dbexpress oppure la suite zeos per l'accesso diretto.
Saluti.

 ha scritto nel messaggio
news:EnfHa.94296$lK4.2...@twister1.libero.it...


funzionalità degli altri motori?
scusa se mi intrometto,
ma ci sono delle risposte ad un post che tu
stesso hai inviato al NG che rispondono pienamente 
alla tua domanda ... vediti le risposte al tuo messaggio 
"DbExpress e MySql" ... questo lo dico non per romperti le "balline"
ma perchè se la rispostà c'è già vai più velocemente tu 
ed eviti ridondanza nel NG
	Ciao
	MassimoB
 
	--------------------[Fuori Tema]---------------------
	"La vera autenticita' non sta nell'essere come si e',
	ma nel riuscire a somigliare il piu' possibile
	al sogno che si ha di se stessi".
	Di Huma Rojo in "Tutto su mia madre".
	-----------------------------------------------------

 ha scritto nel messaggio
news:HRfHa.91816$Ny5.2...@twister2.libero.it...


Sorry
avendo dimenticato l'uso di Emoticon nel mio post precedente
e non volendo creare motivi di risentimento o astio nei miei confronti :)
sottolineo che il carattere del post precedente era di consiglio e non,
gravemente, di rimprovero ;)
Ciao .-Claudio-. ;)
	MassimoB

Funziona quasi tutto.
Scorro il dataset in maniera bidirezionale, faccio tutto quello che voglio,
ma quando nell'evento
AFTERPOST del ClientDataSet inserisco:
(DataSet as TClientDataSet).ApplyUpdates(0);
Per aggiornare le modifiche effettuate, ricevo un messaggio:
Operation out of sync; You can't run this command now
Leggendo tutti gli articoli, non trovo riferimenti a questo errore.
Grazie
Claudio

se usi il dbx la sequenza di componenti è:
un TSqlConnection
un TSqldataset connesso al TSqlConnection
un tdatasetprovider avente come dataset il TSqlDataset del punto precedente
un TClientDataset (CHE E' BIDIREZIONALE) avente come provider il
tdatasetprovider di cui sopra
un TDatasource avente come dataset il TClinetDataset del punto precedente
Il TDatasource può poi essere associato ai controlli dbaware senza problemi.
Se invece metti come dataset per il datasource il TSqldataset e lo colleghi
a componenti dbaware dovresti avere una eccezione xche il TSqldataset è
unidirezionale.
Bye
A

Leggendo tutti gli articoli, non trovo riferimenti a questo errore.
io utilizzo questo codice che funziona su un clientDataset
With ClientDataSet1 Do
  If ChangeCount > 0 Then
    ApplyUpdates(0);
questo perchè è il clientDataset che immagazina 
i cambiameti dei record, quindi è lui che chiamo,
con il codice visto sopra, per far inviare al DatasetProvider,
quindi al DB, le modifiche effettuate, se ce ne sono. 
	Ciao
	MassimoB