Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : SQL : pb avec insert [ Base de données / Autre ] (simonpelloquin)

mercredi 27 août 2008 à 09:12:54 | SQL : pb avec insert

simonpelloquin

Bonjour,

Pour faire suite à la discussion Fieldbyname non déclaréavec Jenojen, nous rencontrons un problème des plus agaçants :

Sur une table avec un champ Integer, il est impossible de faire un insert. A chaque fois delphi retourne un message 'Conversion de type variant incorrect'.

Exemple :
Var
   LI_Truc : Integer;
begin
    LI_Truc := MaTable2ChampEntier.AsInteger;
    With TQuery.Create(nil) do begin
         DatabaseName := [le rep contenant le fichier];
         SQL.Add('Insert into MaTable (MonChampEntier)');
         SQL.Add('Values ('+ IntToStr(LI_Truc) +')');
         ExecSQL;
         Free;
    end;
end;
Ça, ça ne marche pas (sauf si MonChampEntier est en réel, mais cette solution ne me convient qu'à moitié)

En revanche :
Var
   LI_Truc : Integer;
begin
    LI_Truc := MaTable2ChampEntier.AsInteger;
    With TQuery.Create(nil) do begin
         DatabaseName := [le rep contenant le fichier];
         SQL.Add('Insert into MaTable (MonChampEntier)');
         SQL.Add('Select distinct MonChampEntier');
         SQL.Add('From MaTable2');
         SQL.Add('Where MonChampEntier = '+ IntToStr(LI_Truc));
         ExecSQL;
         Free;
    end;
end;

Ce code fonctionne sans problème.
Quelques idées la dessus ?
Pour info, je rencontre ce problème sur D5 et des tables paradox

Simon

mercredi 27 août 2008 à 15:39:15 | Re : SQL : pb avec insert

cantador

Membre Club

Bonjour,

A chaud :
les deux exemples sont très differents..
l'un est une insertion directe et l'autre une insertion à l'aide d'une sous-requête.
On ne peut donc pas les comparer..
la 2e solution ne présente pas d'intérêt puisque la valeur de  LI_Truc est connu au départ.

Pour le premier, il faudrait plus d'infos, car la structure de la table est importante
est ce que par exemple le champ MonChampEntier ne serait pas 
une clé primaire auto-incrémentale ?
A quoi sert également
DatabaseName dans ce code ?

je vais faire des tests de mon côté..

cantador


mercredi 27 août 2008 à 16:37:43 | Re : SQL : pb avec insert

cantador

Membre Club

Un exemple sur la table employee de la DBDEMOS :

procedure TForm1.Button4Click(Sender: TObject);
var
  LI_Truc: Integer;
begin
  LI_Truc := 1000;
  with TQuery.Create(nil) do begin
    DatabaseName := 'c:\Program Files\Fichiers communs\Borland Shared\Data';
    SQL.Add('Insert into employee (EmpNo)');
    SQL.Add('Values (' + IntToStr(LI_Truc) + ')');
    ExecSQL;
    Free;
  end;
end;

Ca marche bien sûr mais une seule fois car le champ EmpNo est déclaré en "clé primaire".
 
je pense maintenant que tu devrais t'en sortir..

cantador




Cette discussion est classé dans : insert, sql, truc, add, li


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec mes insert en SQL [ par freeman44 ] J'utilise Delphi 7 et SQL SERVER 2000J'ai une form qui contient 2 Edit (EnomCategorie et EdescriCategorie). J'insere le contenu de leur champs dans ma insert image (SQL) [ par pvb ] Je ne parviens pas à trouver la requête pour insérer une image dans une table paradox. with qryEtiquettes do begin SQL.Clear; SQL.Add( erreur de syntaxe [ par Arianesatch ] salut je cherche à trouver se qu'il ne va pas dans l'écriture de ce code, l'erreur sql me dit trop peu de pramètres 2 attendus.Form1.Query1.SQL.Clear; AIDE URGENTE SQL ET DELPHI ASSOCIES [ par johnpelu ] Bonjour svp c'est urgent, je fais plusieurs requetes SQL , tout va bien (je travaille avec DELPHI) mais je m'apercois que dans la base de donnees ACCE SQL, requete sur les types de données ! [ par benumiit82 ] Bonjour,comment questionner une base de données en SQL pour connaitre le type de données d'un des champs.Par exemple je voudrais faire ceci (en pseudo Tquery et code [ par bilou2000 ] bonjourj'ai une requete sql pour filtrer les affichage:SELECT *FROM basepicto01WHERE categorie IN ('N ')oK ca marche.seulement lorsque que je veux l' REQUETE UPDATE PROBLEME AVEC UN AND DANS UN SELECT AVEC LE BDE [ par WinLin ] bonjour a tous,voici ma requete elle realise un update d'une table si la reference d'une personne et la reference d'une entreprise sont exactement a c syntaxe de insert into avec adoquery [ par kouvolo68 ] Bonjour,j'aimerais avoir s'il vous plait la syntaxe de la fonction sql insert into un adoquery. parce que adoquery1.sql.add(insert into table1(cle,nbr Question INSERT SQL DS un QUERY [ par WinLin ] Bonjour a tous,je code en dephi depuis quelque moiet lorsque j'insere des données dans une table je le fait toujour avec un composant tablede la manie Requete SQL INSERT [ par zorville34 ] Bonsoir J'utilise  une base access avec des composants ADO. J'ai un problème pour les requetes INSERT. la table est composé de divers champs, integer


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.