Lossy311082
Messages postés5Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 mars 2011
-
23 nov. 2010 à 07:11
Lossy311082
Messages postés5Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 mars 2011
-
30 mars 2011 à 08:26
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!!!!!!
Lossy311082
Messages postés5Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 mars 2011 14 déc. 2010 à 10:48
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
boxma
Messages postés6Date d'inscriptiondimanche 3 octobre 2010StatutMembreDernière intervention 5 février 2011 5 févr. 2011 à 20:07
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
Lossy311082
Messages postés5Date d'inscriptionmardi 9 octobre 2007StatutMembreDernière intervention30 mars 2011 30 mars 2011 à 08:26
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;
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');