Enable to execute query

Signaler
Messages postés
5
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2011
-
Lossy311082
Messages postés
5
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2011
-
salut tous le monde!
j'ai un problème sur mon application delphi7! est ce que ql1 peut m'aider sur le message d'erreur 'unable to execute query'! je pense que l'erreur vient du requête mais je ne sais pas où! l'erreur n'apparait pas sur Windows 2000 mais en XP il revient!!
Merci d'avance!!!!!!

7 réponses

Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
Bonjour,

il faudrait nous montrer quelque chose..


cantador
Messages postés
5
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2011

merci de me répondre
désolé mais les codes sont à +eurs lignes!
est ce que vous pouvez me donner quel que conseil pour éviter alors cet problème!!
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
11
ben non, il faudrait
être magicien

ou sorcier

cantador
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
... ou devin
Messages postés
5
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2011

ok!
je vous donne quelque ligne de programme
traitement de donner + de 200 000 enregistrement
base de données mysql server 5.0
langage Delphi 7

with TSQLQuery.Create(Self) do
begin
SQLConnection := FConnection.SQLConnection1;
SQL.Clear;
SQL.Add('SELECT * FROM ' + sFns + '_' + sDate + '_TmpZin100 WHERE' + ' (ETAT IS NULL OR (ETAT = "")) ' + sCond + sOrder100 + ' LIMIT '+ IntToStr(iCompteur) + ', '
+ IntToStr(PbZin100.MaxValue));// limité 0 jusqu'à nbr d'enregistrement
Prepared := True;
Open;
while not Eof do
begin
//..... suite du traitement
end;
end;

Au bout de quel minute l 'erreur s'affiche 'Enable to execute query'
est ce que cet erreur est identique au 'interactive_timeout'????
Merci d'avance pour les aides
Messages postés
6
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
5 février 2011

salut salut

Au bout de quel minute l 'erreur s'affiche


d'apré le message le probleme vien de la requete et pas des traitement donc ce que je peut te consiel d'afficher ta requete dans un message aumoin tu pourra voir si ta requete est correct
avant d'arrive a la partie
[
Open; 
while not Eof do 
begin 
//..... suite du traitement 
end; 
end; 


je dis ça pasque on conné pas la nature des tes veriable
sFns ,sDate,sCond ,sOrder100


(transpage, incompabilité de la date ...)
Messages postés
5
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2011

re salut tt le monde

je vous donne alors 2 procedures qui sont à la source du problème


function Caracteres_Speciaux_Existe_Sauve(pChaine : string) : boolean;
var
speciaux: pCellule;
existe: Boolean;
begin
existe := False;
//insertion caractere dans un pointeur
speciaux := pCaracteresSpeciaux;
while speciaux <> nil do
begin
with TSQLQuery.Create(Self) do
begin
SQLConnection := FConnection.SQLConnection1;
SQL.Clear;
SQL.Add('select mot from ad_anomalie where mot = ' + quotedstr(pchaine));
Prepared:= True;
open;
if recordCount > 0 then
begin
existe := true;
break
end;

Close;
Free;
end;
speciaux := speciaux^.suivant;
end;
speciaux := nil;
Result := existe;
end;

procedure TFImportMovex.btnAlerte2Click(Sender: TObject);
var
vIDEnreg : string;
vTrouveAnomalie : boolean;
nbrEnreg, nbrEnreg2 : integer;
vDesignArt : string;
j : integer;
begin
//insertion des caractère spéciaux dans un pointeur
Init_Caracteres_Speciaux;

vTrouveAnomalie := false;
screen.Cursor := crSQLWait;
nbrEnreg2 := GetRecordCount(sFns + '_' + sDate + '_TmpExtract', 'TRIM(DESIGNART) <> ""');
PanAttente.Visible := True;
lbAttente.Caption := 'Détection anomalie désignation en cours...';
pbAttente.MinValue := 0;
pbAttente.MaxValue := nbrEnreg2;
pbAttente.Value := 0;

if Table_Existe('Movex_Alerte') then
Exec_MySQL_Teste('DROP TABLE Movex_Alerte');

Exec_MySQL_Teste('CREATE TABLE IF NOT EXISTS Movex_Alerte'
+ ' AS SELECT * FROM ' + sFns + '_' + sDate + '_TmpExtract');
Exec_MySQL_Teste('Truncate TABLE Movex_Alerte');
//pour stocker les nombres ktaires spéciaux
if Table_Existe('tmp_anomalie') then
Exec_MySQL_Teste('DROP TABLE tmp_anomalie');
Exec_MySQL_Teste('CREATE TABLE tmp_anomalie('
+ ' id INT NOT NULL AUTO_INCREMENT,'
+ ' PRIMARY KEY(id),'
+ ' mot VARCHAR(30))');


with QueryMySQL3 do
begin
Application.ProcessMessages;
Close;
SQL.Clear;
Activate;
SQL.Add('SELECT ID,DESIGNART FROM ' + sFns + '_' + sDate + '_TmpExtract WHERE '
+ 'TRIM(DESIGNART) <> "" ORDER BY ID LIMIT 0, ' + IntToStr(nbrEnreg2));
Prepared:= True;
Open;
while not Eof do
begin
Application.ProcessMessages;
vIDEnreg := FieldByName('ID').AsString;
vDesignArt := FieldByName('DESIGNART').AsString;
if Caracteres_Speciaux_Existe_Sauve(vDesignArt) then
begin
with TSQLQuery.Create(Self) do
begin
SQLConnection := FConnection.SQLConnection1;
SQL.Clear;
SQL.Add('INSERT INTO Movex_Alerte SELECT * FROM ' + sFns + '_' + sDate + '_TmpExtract '
+ ' WHERE ID = ' + QuotedStr(vIDEnreg) + ' AND ID NOT IN (SELECT ID FROM Movex_Alerte)');
Prepared:= True;
ExecSQL;
vTrouveAnomalie := true;
Close;
Free;
end;
end;
pbAttente.Value := pbAttente.Value + 1;
Next;
end;
Close;
end;
//----------------------------------------------------------....: michel
if vTrouveAnomalie then
begin
nomTableAModifier := sFns + '_' + sDate + '_TmpExtract ';
(*FAnomalie2.sStep := 'DESIGN';
FAnomalie2.sSource := 'Movex';
FAnomalie2.sTable := 'Movex_Alerte';
FAnomalie2.sTableFinale := sFns + '_' + sDate + '_TmpExtract';
FAnomalie2.bRemplace := True;
FAnomalie2.bSuppr := False;
FAnomalie2.sChamp := '';
FAnomalie2.ShowModal;*)
FAnomalie_Resume.sStep := 'DESIGN';
FAnomalie_Resume.sSource := 'Movex';
FAnomalie_Resume.sTable := 'Movex_Alerte';
FAnomalie_Resume.sTableFinale := sFns + '_' + sDate + '_TmpExtract';
FAnomalie_Resume.bRemplace := True;
FAnomalie_Resume.bSuppr := False;
FAnomalie_Resume.sChamp := '';
FAnomalie_Resume.ShowModal;
end;
//----------------------------------------------------------....: michel
//Supprimer la table temporaire anomalie
if Table_Existe('tmp_anomalie') then
Exec_MySQL_Teste('DROP TABLE tmp_anomalie');

PanAttente.Visible := False;
screen.Cursor := crDefault;
Application.ProcessMessages;
Liberer_Liste(pCaracteresSpeciaux);
Liberer_Liste(pSpeciauxResume);
end;



merci de votre aide!!
Michel