Bonjour à tous,
je travail avec Delphi et les composants UNIDAC de DevArt pour communiquer avec des bases de données de type Sql server ou Firebird (Notre application fonctionne sous les 2 systèmes).
J'ai rencontré un problème un peu spécial que j'aimerais bien élucidé. Il ne se produit qu'avec les bases de données SQL Server, tout fonctionne bien avec Firebird.
J'ai reproduit le problème dans une petite application de la manière suivante :
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 Procedure TForm1.ExecQry(prepare_ : Boolean; LabelOK_, LabelKO_ : TLabel ); Begin UniQuery1.UnPrepare; UniQuery1.Close; UniQuery1.SQL.Clear; UniQuery1.LockMode:=lmOptimistic; LabelOK_.Visible:=False; LabelKO_.Visible:=False; Memo2.Clear; Try UniQuery1.SQL.Add(Memo1.Lines.Text); UniQuery1.Filtered:=False; UniQuery1.ReadOnly:=False; UniQuery1.RefreshOptions:=[roAfterUpdate]; UniQuery1.Options.StrictUpdate:=False; If prepare_ = True Then UniQuery1.Prepare; If UniQuery1.IsQuery = True Then UniQuery1.Open Else UniQuery1.ExecSQL; LabelOK_.Visible:=True Except On E:Exception Do Begin LabelKO_.Visible:=True; Memo2.Text:=e.Message; End; End; End;
Lorsque j'exécute les requêtes suivantes (Donc le contenu de Memo1 dans le code ci-dessus) - (Les sauts de lignes et les majuscule sont importants)
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part update egammes set validation = 'False' where validation is null
Tout fonctionne bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE EGAMMES SET VALIDATION = 'False' WHERE VALIDATION IS NULL
Par contre, lorsque j'exécute la requête suivante
Qui me semble identique en type. Seuls les sauts de ligne ou la casse changent. Le système me retourne le message suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE EGAMMES SET VALIDATION = 'False' WHERE VALIDATION IS NULL
J'avoue que je ne comprend pas du tout ce fonctionnement.L'instruction a été arrêtée.
Les données de chaîne ou binaires seront tronquées.
Quelqu'un a-t-il une idée de ce qu'il se passe?
Merci d'avance.
¨
Noémie
Partager