Bonjour,
J'ai déclaré une table telle queCette table est parfaitement lisible sous MSAccess et contient déjà deux enregistrements.
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 //******************************************************** table Segmentation // les noms de champ sont visibles pour l'utilisateur req:= 'CREATE TABLE SEGMENTATION (' + ' SEGMENTATION_NO AUTOINCREMENT, ' + ' SEGMENTATION_OPERATION_NO INTEGER NOT NULL, ' + ' CONSTRAINT FK_Segmentation2Operation FOREIGN KEY (SEGMENTATION_OPERATION_NO) '+ ' REFERENCES OPERATION(OPERATION_NO) ON UPDATE CASCADE ON DELETE CASCADE, '+ ' SEGMENTATION_SEGMENTS_NUMBER INTEGER NOT NULL, ' + ' SEGMENTATION_DEGREE BYTE DEFAULT 1, ' + ' SEGMENTATION_SPEED BYTE DEFAULT 1, ' + ' SEGMENTATION_START BYTE DEFAULT 1, ' + ' SEGMENTATION_STEPRGB SINGLE NOT NULL, '+ ' SEGMENTATION_CUSTUMED_OK VARCHAR(2) DEFAULT -1, '+ ' SEGMENTATION_USED VARCHAR(2) DEFAULT -1 '+ ')'; ADOCommand1.CommandText := req; ADOCommand1.Execute; // ==================== Clé primaire req := 'ALTER TABLE SEGMENTATION ADD CONSTRAINT PK_SEGMENTATION PRIMARY KEY (SEGMENTATION_NO);'; ADOCommand1.CommandText := req; ADOCommand1.Execute;
Je veux lire l'un d'eux par la fonction :L'ensemble de ce code source est déclaré dans un DataModule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // lire une segmentation function TPeekDM.ReadSegmentationOK(Const RecNo: Integer; var Rec: TPeekSegmentsCfg): boolean; begin qry.Close(); qry.ConnectionString:= Format(_ConnString,[_UserName,_PassWord,CurDBPath]); qry.sql.text := 'SELECT * FROM SEGMENTATION WHERE SEGMENTATION_NO = '+IntToStr(RecNo)+';'; qry.Open(); // Ici Open pour SELECT, reserver ExecSQL à INSERT\UPDATE
Dans une autre unité j'appele la fonction PeekDM.ReadSegmentation(1,record) et l'erreur se produit au code précédent ligne 6 "EOleExeption avec message "Echec de l'authentification"
Au secours ! Comment corriger ?
Merci à l'avance à tous les forumers
Partager