Transaction ?

Technoman - 7 déc. 2001 à 22:47
 Philippe Gormand - 10 déc. 2001 à 12:45
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.

Que se passe-t-il ?

Merci.

1 réponse

Philippe Gormand
10 déc. 2001 à 12:45
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.

Voila j'espère avoir un peu aidé.
0
Rejoignez-nous