Bonjour,
Voici mon problème : j'ai une base qui a des intégrités référentielles. Je dois faire des inserts et updates sur ces bases mais le pb est le suivant.
Si je ne renseigne rien dans mon champ avec intégrité, le DAC va mettre '' lors de l'insertion et boum!! ma bdd me renvoie une erreur d'intégrité, ce qui est normal car je n'ai pas d'enreg avec comme clé '' (qui plus est, il est impossible d'en créer une car une contrainte not null est sur le champ référent).
Quelqu'un a-t-il déjà eu ce cas ???
J'ai essayé un truc, c'est d'envoyer une fonction dans mon BeforeXmlGram qui va modifier le :CHAMP par NULL. Ca marche, mais evidemment comme la requête est gardée en mémoire, lors de mon prochain appel à cette requête, le NULL va rester... y a-t-il un moyen de recharger la requête du fichier xml ???
pour info, voici ma petite fonction :
procedure VerifChamp(const Context : IXMLContext; var XmlGram : IXmlGram ; MyRequete,sChamp: string);
var
MyXMLInstruction : IXMLInstruction;
MyDBExtract : TDBBatch;
begin
MyXMLInstruction := XMLGram.GetXMLInstruction('MyRequete');
MyDBExtract := TDBBatch(MyXMLInstruction.Get_ObjectReference);
if Context.Values[MyChamp]= '' then
begin
MyDBExtract.Statement := StringReplace(MyDBExtract.Statement,':'+MyChamp,'NULL',[rfReplaceAll]);
end;
Merci d'avance![]()
Partager