Pb requete entre BDE et ADO

Résolu
padsou Messages postés 121 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 13 avril 2010 - 5 oct. 2005 à 13:08
padsou Messages postés 121 Date d'inscription jeudi 24 janvier 2002 Statut Membre Dernière intervention 13 avril 2010 - 6 oct. 2005 à 09:21
bonjour,

j'ai un souci sur une requete :
d'ordinaire je passe par ADO, mon select fonctionne bien tandis que mon update plante (violation d'accès dans le module "msado15.dll"). J'ai donc décidé de passer par BDE. Mais là mon select ne fonctionne pas du tout car mon mon RecordCount renvoie -1 au lieu de 1. Ma base de données est Sql Server.

Voici le Select :

SqlQuery := 'select * from ' + ADOTable1.TableName
+ ' where datatype = ' + #39 + DataType + #39
+ ' and heurer = { ts ' + #39 + DateTranslated + #39 + '}'
+ ' and wmostation = ' + #39 + WmoStation + #39 + ';';


if SADOConnection1.Connected = False then
SADOConnection1.Connected := True;
SADOQuery1.SQL.Text := SqlQuery;
SADOQuery1.Open;

Voici le Update :

DateTimeToString(HeureZTranslated, 'yyyy-mm-dd hh:nn:ss', HeureZ);
DateTimeToString(DebValTranslated, 'yyyy-mm-dd hh:nn:ss', DateDebutValidite);
DateTimeToString(FinValTranslated, 'yyyy-mm-dd hh:nn:ss', DateFinValidite);
DateTimeToString(DateTranslated, 'yyyy-mm-dd hh:nn:ss', HeureR);
DataMessage := StringReplace(DataMessage, #$D#$A, '''''#$D#$A''''', [rfReplaceAll]);
SADOQuery1.Close;
SADOQuery1.SQL.Text := 'UPDATE ALPHAMSG' + IntToStr(ComputeCodeDay(Now))
+ ' SET heurez={ts ' + #39 + HeureZTranslated + #39
+ '}, datedebutvalidite={ts ' + #39 + DebValTranslated + #39
+ '}, datefinvalidite={ts ' + #39 + FinValTranslated + #39
+ '}, buffersize=' + IntToStr(Length(DataMessage))
+ ', databuffer=' + #39 + DataMessage + #39
+ ', validite=' + IntToStr(Validite)
+ ', TTAAIICCCCYYGGGGBBB=' + #39 + TTAAIICCCCYYGGGGBBB + #39
+ ' WHERE datatype=' + #39 + DataType + #39
+ ' AND heurer={ ts ' + #39 + DateTranslated + #39 + '}'
+ ' AND wmostation=' + #39 + WmoStation + #39
+ ' AND ((heurez>={ts ' + #39 + HeureZTranslated + #39
+ '}) OR (datefinvalidite>={ts ' + #39 + FinValTranslated + #39 + '}));';
SADOQuery1.ExecSQL;

Merci de votre aide...

5 réponses

exyacc Messages postés 163 Date d'inscription dimanche 20 octobre 2002 Statut Membre Dernière intervention 31 juillet 2008
5 oct. 2005 à 18:11
et en utilisant ADOQuery1.RowsAffected ? ca donne le nombre de lignes manipulées par la derniere execution de la requete
exyacc
3
Rejoignez-nous