Bonjour,
J'ai créé une procédure stockée sur une table pour ajouter un enregistrement dont voici le code :Je souhaite l'utiliser avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //== Procédure stockée pour ecrire un Opérateur req:= 'CREATE PROC procOperatorAddItem(OperNo COUNTER,OperName VARCHAR(32), '+ 'UserNo INTEGER, OperPass INTEGER, OPerRights INTEGER )'+ 'AS INSERT INTO OPERATOR (OPERATOR_NO, OPERATOR_NAME, OPERATOR_USER_NO, '+ 'OPERATOR_PASS, OPERATOR_RIGHTS ) '+ 'Values (OperNo, OperName,UserNo,OperPass,OperRights);'; ADOCommand1.CommandText := req; ADOCommand1.Execute;Tout fonctionne jusqu'à ExecProc et j'obtiens le message "EoleException Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table DBUSER"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 procedure TScreenForm.CreateOperator( const OperName: String; const UserNo,OperPass,OPerRights: Integer); var k,OperNo: integer; Params: TCollection; begin OperNo:= Succ(CountFromTable('OPERATOR')); ADOStoredProc1.ConnectionString:= Format(_ConnString,[_UserName,_PassWord,MDBFile]); ADOStoredProc1.ProcedureName:= 'procOperatorAddItem'; ADOStoredProc1.Parameters.Clear; for k:=0 to 4 do begin ADOStoredProc1.Parameters.AddParameter; ADOStoredProc1.Parameters[k].DataType:= ftString; ADOStoredProc1.Parameters[k].Direction:= pdInput; case k of 0: begin ADOStoredProc1.Parameters[k].Name:= 'OperNo'; ADOStoredProc1.Parameters[k].Value:= OperNo; end; 1: begin ADOStoredProc1.Parameters[k].Name:= 'OperName'; ADOStoredProc1.Parameters[k].Value:= OperName; end; 2: begin ADOStoredProc1.Parameters[k].Name:= 'UserNo'; ADOStoredProc1.Parameters[k].Value:= UserNo; end; 3: begin ADOStoredProc1.Parameters[k].Name:= 'OperPass'; ADOStoredProc1.Parameters[k].Value:= OperPass; end; 4: begin ADOStoredProc1.Parameters[k].Name:= 'OperRights'; ADOStoredProc1.Parameters[k].Value:= OperRights; end; end; end; ADOStoredProc1.ExecProc;
Comment procéder à la mise à jour de la relation correspondante à l'index FK_...
Merci d'avoir pris le temps de lire et de comprendre la question
Partager