Des que je fais un "starttransaction", j' obtiens un message d' erreur me signalant un Eviolation je sais plus trop koa, en gros violation d' adresse memoire.
Salut. En général, ce genre message d'erreur apparait lors
d'une tentative d'accès à un pointeur pour lequel on n'a pas
alloué de mémoire. Donc si on tente de modifier la valeur d'une de ses données, on va écrire dans un espace mémoire qui appartient à une autre variable, ou à un autre objet.
Par exemple:
Var
BMP : TBitmap; // TBitMap est une classe, donc un
// pointeur, et BMP est une référence
// à ce pointeur ( c'est la meme chose
// en C++ puisque le concept est le meme)
begin
BMP.Canvas.Rectangle(0,0,15,15); // Cette ligne engendre
// une erreur car il n'y
// a pas de mémoire prévue
// (allouée) à l'objet TBitMap.
// Il faut écrire
BMP := TBitMap.Create;// Create est une méthode de la
// Classe TBitMap, qui fait appel
// à GetMem, à new etc...
BMP.Width:=15;
BMP.Height:=15;
BMP.Canvas.Rectangle(0,0,15,15);
end;
Je ne travaille pas sur les bases de données, mais j'ai vue
dans l'aide ( que l'on consulte trop rarement ), que si
on fait appel à Startransaction sans avoir préalablement
appelé commit ou callback, on provoque une erreur.