begin process at 2012 02 11 08:59:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Bases de données

 > 

Insertion de données avec mysql


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Insertion de données avec mysql

dimanche 20 novembre 2005 à 17:29:34 | Insertion de données avec mysql

maxoudu328

Salut, alors voila pour un prog j'ai besoin d'enregistere des info dans un BDD mysql
Etant débutant je V prendre un tuto sur un site d'abord je le suis a la lettre et tout marche bien... Ensuite je change deux trois truc pour intégrer des données end ur (pas des variable) dans un autre base et une autre table du meme serveur (en local) et la Ca me fait un erreur alors je teste plein de truc toujour une erreur ensuite j'ajoute un champs dans la table qui a étéait créer pendant le tuto (la ou tout marcher bien) dans je reprendre exactement le meme code que celui du tuto en rajoutant juste ca :

avant :

mysql_query(mysql, pChar('INSERT INTO '+table+' (id,nom) VALUES ("", "Nom")'))

(ca ca marche)
--------------------
Avec les modif


mysql_query(mysql, pChar('INSERT INTO '+table+' (id,nom,clan) VALUES ("", "Nom", "kor")'))

Voila pas bcp de modif mais quand meme ca marche pas ....

voila touie les partie du code :

Déclaration :

implementation
CONST dbname='testdb';
table='db';


{$R *.dfm}

-------------------------------
 
public
    { Déclarations publiques }
     mysql: PMysql;

  end;

Et mysql déclarer dans les USES

le code pour me connecté :

procedure TForm1.Button3Click(Sender: TObject);
Var user,host,pwd:string;
portip:integer;
begin
user:='root';
pwd:='';
host:='127.0.0.1';
portip:=3306;
MySQL := mysql_init(nil);
mysql_options(mysql,MYSQL_OPT_COMPRESS,0);
if mysql_real_connect(mysql, pChar(host), pChar(user), pChar(pwd), nil, portip, nil, 0)=nil  then
Button3.Caption:='La connexion a echouée'
else
Button3.Caption:='Connexion OK';
end;


----------------------------------------------

L'insértion de donnés :

procedure TForm1.Button6Click(Sender: TObject);
Var boucle:byte;
erreur:boolean;
begin
if mysql_select_db(mysql, pChar(dbname)) <> 0 then
Button6.Caption:='Selection de la base impossible';
erreur:=false;
 if mysql_query(mysql, pChar('INSERT INTO '+table+' (id,nom,clan) VALUES ("", "Nom", "kor")'))  <> 0 then
erreur:=true;
if (erreur) then
Button6.Caption:='Erreur'
else
Button6.Caption:='Ok';
end;



Voila moi j'i capte vraiment rien pourquoi ca fonctione pas et ca mme rend fou !!!

Donc si vous y voyé mieu que moi :s ben je vous en remercis d'avance ...

A oui j'ai aussi la LibMySql.dll et mysql.pas (sinon la fonction du tuto ne marcherait pas :D )

Aller cordialement.

dimanche 20 novembre 2005 à 20:51:46 | Re : Insertion de données avec mysql

f0xi

Membre Club Administrateur CodeS-SourceS
en effet, y'a un probleme...

la syntaxe de la requette semble bonne ...


verification toute fois : le champ "clan" existe t'il dans la table ?

si non ... ben alors ? faudrait peut etre le créer non ?

si oui ... de quel type est il ? Text ? Varchar ?

si varchar ... comment est il declaré ? varchar(3)  ? varchar(10) ?

autre verification importante :
MySQL est CaseSensitive pour les nom des champs : clan n'est pas egal a Clan ou CLAN
verifie donc que "clan" est declaré exactement comme cela sans majuscule aucunes.




dimanche 20 novembre 2005 à 23:38:15 | Re : Insertion de données avec mysql

maxoudu328

Alors :

oui clan existe je suis débutant delphi mais ca fait un petit moment que je code en php ..;

Et il est écrit exactement pareil c'est un varchar(25) comme le champs 'nom' juste au desus qui dans la requete qui fonctionne marche trés bien ...

Jvous dit c'est a n'y rien comprendre ....


lundi 21 novembre 2005 à 04:53:46 | Re : Insertion de données avec mysql

f0xi

Membre Club Administrateur CodeS-SourceS
carrement en effet ...

je supose que le champ Id est un Int en auto-increment definis en Clef primaire ?

par contre un truc me trouble dans la declaration de ta requettes :
mysql_query(mysql, pChar('INSERT INTO '+table+' (id,nom,clan) VALUES ("", "Nom", "kor")'))
c'est mysql_query qui demande un pChar (pointeur sur Caractere)?

un autre truc me chifonne, c'est l'utilisation de " au lieu de ' ('' en delphi (double touche 4)) ...
car si tu utilise mysql avec php tu as du remarquer que les guillemets ne sont pas supportée dans la requette mysql...

 est-ce que la requette fonctionne si tu l'execute dans la fenetre SQL de phpmyadmin ?

aussi tu peu utiliser format pour créer ta requette, ça eviteras de tout retaper a chaque fois :

function InsertQuery(table, nom, clan : string) : string;
begin
   result := format( 'INSERT INTO %s (id, nom, clan) VALUES ('''',''%s'',''%s'')',
                     [Table,Nom,Clan]);
end;


lundi 21 novembre 2005 à 04:58:18 | Re : Insertion de données avec mysql

f0xi

Membre Club Administrateur CodeS-SourceS
par contre tu as de la chance car je n'ai jamais reussi a faire fonctionner MySQL.Pas avec la lib et mysql ...

me demande pas pourquoi ... echec de connection en permanence... remarque a l'epoque j'avais essayer avec un easyphp ... maintenant j'ai une vrai install Apache/Php/MySQL faite a la main donc ça devrait surrement fonctionner.

lundi 21 novembre 2005 à 09:53:12 | Re : Insertion de données avec mysql

maxoudu328

Ben enfete ma requétes et parfaite puisque si je ne met pas le 3eme élement ca marche nikel .....
mardi 22 novembre 2005 à 11:49:47 | Re : Insertion de données avec mysql

maxoudu328

Un pti up pour ce probleme super bizard !!!


Cette discussion est classée dans : table, caption, mysql, erreur, pchar


Répondre à ce message

Sujets en rapport avec ce message

delphi/Mysql erreur faut ajouter une colonne non blob a la table [ par haouestarik ] bonjour,je developpe une application delphi/Mysqlj'ai crée dans ma table un champs appelé 'photo' type BLOBsur ma fiche j'ai utilisé un DBIMAGE mais a Connection MySQL [ par Kaki16 ] KakiBonjour à tous,J'essai de me connecter à mon serveur mysql. Voici ma procédure :Conn := mysql_init(nil);if Conn = nil then ShowMessage('erreur');M erreur TABLE Occupée!! [ par sarahhhhh ] bjr j'ai un pb à l'execution quand je veux consulter une table alors "erreur table occupée!!" comment remedier à ce pb ou plus ou moins un messaged'at Problème Accès table avec mot de passe recuperation d'erreur [ par kawapoulpe ] Bonjour, Je suis nouveau sur ce site, je débute en développement (enfin, pas tout à fait, mais comme je n'en ai pas fait depuis plus de 10 ans et qu on update cascade [ par tleboukaka ] salut j'ai un message d'erreur sur la mise à jour en cascade. voici ma syntaxe de ma bdd Interbase<pre class="alt2" dir="ltr" style Erreur index avec TBatchMove [ par jstauffer ] Bonjour,je veux faire une mise à jour et ajout des enregistrements de la table 1 (paradox) vers la table 2 (Sql Server 2005) qui possède un index sur SQL Server/Delphi, Erreur conversion CHAR en DATETIME [ par mengele ] Bonjour,je me casse la tête depuis des jours avec ça :dans sql server 7 j'ai une simple table "MaTable" avec trois champs : une clé primaire "ID" (Int Requete MySQL [ par nirG ] Bonjour,Je suis à la recherche comment faire une requête avec 2 critères comme sur PHP .du type :          mysql_select_db(mysql, pChar(dbname));      Importer un fichier csv dans une table mysql [ par dx33 ] Bonjour, Après avoir importer un fichier csv dans une table mysql, je constate que les champs numérique avec décimale deviennent des entiers.Ceci malg


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales