IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Erreur SQL: Search condition is not applicable - Native error: 30144.


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut Erreur SQL: Search condition is not applicable - Native error: 30144.
    Salut tous le monde, cette procédure m'affiche un message d'erreur pendant son exécution, le message d'erreur est comme suit:
    "Search condition is not applicable - Native error: 30144."

    Sachant que le champ state est de type string et j'utilise absolute database comme SGBD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm2.Button1Click(Sender: TObject);
    var i,j:integer;
    begin
    for i := 0 to form2.groupbox1.ControlCount-1 do
    if (Tcheckbox(form2.groupbox1.Controls[i]).checked=true) then
    for j:=0 to form1.ControlCount-1 do
    if (form1.Controls[j] is TButton) and(form1.Controls[j].Name=form2.groupbox1.Controls[i].Name)  then
    begin
    form1.Controls[j].Enabled:=false;
    absquery1.Close;
    absquery1.sql.Clear;
    absquery1.SQL.Add('UPDATE master SET state=0 WHERE id='+Tcheckbox(form2.groupbox1.Controls[i]).caption);
    absquery1.open;
    end;

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    C'est apparemment la condition qui n'est pas valide : id est de quel type ?
    Ensuite, si state est de type string, lui affecter 0 est-il justifié ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    C'est apparemment la condition qui n'est pas valide : id est de quel type ?
    Ensuite, si state est de type string, lui affecter 0 est-il justifié ?

    ID est de type String aussi et pour le 0 c'est faisable. Alors où est vraiment le problème ???

  4. #4
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    C'est bon j'ai trouver la solution et elle est comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    absquery1.SQL.Add('UPDATE master SET state=0 WHERE master.id='+chr(39)+Tcheckbox(form2.groupbox1.Controls[i]).caption+chr(39));
    puis à la place de je l'ai remplacer par parce que j'ai eu l'erreur: error creating table handle - native error 20001

    donc le code final est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm2.Button1Click(Sender: TObject);
    var i,j: integer;
    begin
    for i := 0 to form2.groupbox1.ControlCount-1 do
    if (Tcheckbox(form2.groupbox1.Controls[i]).checked=true) then
    for j:=0 to form1.ControlCount-1 do
    if (form1.Controls[j] is TButton) and(form1.Controls[j].Name=form2.groupbox1.Controls[i].Name)  then
    begin
    form1.Controls[j].Enabled:=false;
    absquery1.Close;
    absquery1.sql.Clear;
    absquery1.SQL.Add('UPDATE master SET state=0 WHERE master.id='+chr(39)+Tcheckbox(form2.groupbox1.Controls[i]).caption+chr(39));
    absquery1.ExecSQL;
    end;

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 952
    Points
    40 952
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Plutôt que d'utiliser des Chr(39) un QuotedStr(Tcheckbox(form2.groupbox1.Controls[i]).caption) serait certainement plus lisible .
    Et comme je le dit souvent , même s'il est plus long de l'écrire (une instruction par paramètre), l'utilisation de paramètres est souvent mieux !

    Quant au ExecSQL ou Open pour se souvenir de leur utilisation respective il suffit de se poser la question :
    Est-ce que mon SQL renvoi des données :
    - Oui => Open Non => ExecSQL
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre du Club
    Homme Profil pro
    Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Inscrit en
    Juin 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Tutulaire d'un Master Academique en Réseaux et Systèmes repartis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 227
    Points : 51
    Points
    51
    Par défaut
    Merci SergioMaster pour les compliments

    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Plutôt que d'utiliser des Chr(39) un QuotedStr(Tcheckbox(form2.groupbox1.Controls[i]).caption) serait certainement plus lisible .
    Et comme je le dit souvent , même s'il est plus long de l'écrire (une instruction par paramètre), l'utilisation de paramètres est souvent mieux !

    Quant au ExecSQL ou Open pour se souvenir de leur utilisation respective il suffit de se poser la question :
    Est-ce que mon SQL renvoi des données :
    - Oui => Open Non => ExecSQL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/02/2013, 09h01
  2. Réponses: 5
    Dernier message: 11/02/2013, 12h19
  3. Erreur SQL NAtive Client
    Par mazen_bn dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 13/09/2008, 00h54
  4. [Erreur] [sql-dmo] this server objet is not connected
    Par MaxBoys dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 14/09/2007, 08h53
  5. [MySQL] Message d'erreur SQL mysql_fetch_assoc(): supplied argument is not a valid
    Par pony99 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 19/02/2007, 16h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo