[R] Aide sur EzMySql pour completer l'exemple

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

[R] Aide sur EzMySql pour completer l'exemple

#1

Message par jl56 »

Bonjour à tous,

Je test actuellement EzMySql pour pouvoir utiliser un script avec une base SQL
J'ai lu beaucoup cette semaine sur les bases SQL mais je ne voudrais pas m'investir de suite dans ce system car je n'aurais probablement pas à le faire à terme. Il y a des collègues qui vont développer un site avec PHP et Mysql.

Je dois leur démontrer qu'il est possible d'utiliser une base MYSQL avec mes scripts afin de ramener les infos dans la base ou de les lires
J'ai donc installé WAMP et lancé l'exemple je l'ai modifié pour mon test avec la création de 2 tables ( une Client et l'autre PC )



► Afficher le texte

Pouvez vous, SVP, m'aider à terminer les 4 dernières étapes ( Suppression,modification dans les 2 tables )
Je ne vois pas comment aborder ces points. Cela me permettra d'avoir un exemple complet pour être autonome.

Merci

Jl56
Modifié en dernier par jl56 le sam. 02 mai 2015 10:02, modifié 5 fois.
Avatar du membre
sozary
Niveau 6
Niveau 6
Messages : 274
Enregistré le : lun. 20 janv. 2014 19:17
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#2

Message par sozary »

Changer une info:

Code : Tout sélectionner

$sMySqlStatement_pc="UPDATE TestTable_pc SET Person9="";"
If Not _EzMySql_Exec($sMySqlStatement_pc) Then
    MsgBox(0, "Error inserting data to Table", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
    Exit
EndIf
Supprimer un truc:

Code : Tout sélectionner

$sMySqlStatement_pc="DELETE FROM TestTable_pc WHERE Person9="";"
If Not _EzMySql_Exec($sMySqlStatement_pc) Then
    MsgBox(0, "Error inserting data to Table", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg())
    Exit
EndIf
"Là où la volonté est grande, les difficultés diminuent.", Niccolò Machiavelli
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#3

Message par jchd »

Sozary, ton SQL ne veut rien dire.

jl56

Tes colonnes rowid forcent automatiquement leur unicité, donc ta contrainte UNIQUE est inutile dans les deux tables.

; modification couleur cheveux du client Person4
update testtable set haircolour = 'Blue' where client = 'Person4';

; Suppression de Nompc5 du client Person7
delete from testable_pc where nom = 'NomPC5' and client = 'Person7';

; Modification de l'IP du NomPC3 du client Person9
update testables_pc set ip = '192.168.45.89' where nom = 'NpmPC3' and client = 'Person9';

; Suppression du client Person3
delete from testtable where client = 'Person3';
;~ et des PC de client 3
delete from testable_pc where client = 'Person3';
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#4

Message par jl56 »

Bonjour à tous,

Merci à vous deux pour vos réponses

J'ai modifié et complété le script d'exemple ça fonctionne bien merci JCHD

@JCHDT u parles de la clé unique
Tes colonnes rowid forcent automatiquement leur unicité, donc ta contrainte UNIQUE est inutile dans les deux tables.
J'ai copié bêtement l'exemple fournie avec EzMySql est-ce que cela pose un problème que faut il faire ?

Autre demande comment sélectionner sur la table testtable les clients qui contienne le caractère 1 dans le nom et dont les cheveux sont green
c'est pour pouvoir faire une présélection genre tout les clients ou il a dans le nom exemple dupont et qui sont du Morbihan

Merci encore

A+ JL56
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#5

Message par jchd »

J'ai copié bêtement l'exemple fournie avec EzMySql est-ce que cela pose un problème que faut il faire ?
Tu peux élaguer, ça ne sert à rien même si ce n'est pas nocif.
Autre demande comment sélectionner sur la table testtable les clients qui contienne le caractère 1 dans le nom et dont les cheveux sont green
c'est pour pouvoir faire une présélection genre tout les clients ou il a dans le nom exemple dupont et qui sont du Morbihan
SELECT CLIENT,Nom,IP FROM TestTable WHERE CLIENT like '%1%' and haircolour = 'Green';
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#6

Message par jl56 »

Bonjour à tous, très matinal ( j'ai bu trop de café hier)

@JCHD
Merci ça fonctionne très bien, j'ai corrigé le code, pour l'exemple, sur mon premier post

J'ai carrément supprimer rowid de la table testtable_pc je ne sais pas si c'est une bonne id zut idée.

J'ai cru lire, lors de mes lectures sur MYSQL, qu'il fallait toujours mettre une colonne ID
la correspondance entre les 2 tables c'est la colonne CLIENT est-ce il faut mettre primary key sur ces colonnes ?

Merci de vos remarques

A+ JL56
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#7

Message par jchd »

Je te l'ai transposé sur SQLite, ce qui te permet de tester du SQL en local et surtout en temps réel si tu utilises un gestionnaire comme SQLite Expert (la version gratuite suffit amplement).

Tu vois qu'on peut parfaitement virer les rowid, déclarer client comme clé primaire sur la table clients et créer une clé composite (client, nom) unique sur la table pc. On pourrait aussi bien considérer ip comme unique et créer l'index primaire sur (ip). Tout dépend de la sémantique des colonnes et des relations entre tables. En outre, une clé étrangère (foreign key) lie les colonnes client. Maintenant, si on supprime un client, SQL supprimera automatiquement ses PCs (clause on delete cascade). La clause on update cascade assure la cohérence automatique lors de la modification du nom d'un client dans la table client. Je te laisse jouer avec tout ça.

On a toujours intérêt à encadrer une insertion massive par une transaction et faire un rollback si ça se passe mal au milieu de ça. En plus, c'est beaucoup plus véloce.
► Afficher le texte
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [R] Aide sur EzMySql pour completer l'exemple

#8

Message par jl56 »

@JCHD

Merci beaucoup

Je vais effectivement jouer avec tout ça
je passe en résolu ce post
Je dois faire comme je l'ai dis un exemple de fonctionnement avec un script ensuite j'aurais un peu de temps pour refaire un script sur cet exemple avec une gui.

Merci pour tout, j'ai ce qu'il me faut pour travailler

A+ JL56
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [R] Aide sur EzMySql pour completer l'exemple

#9

Message par jl56 »

Bonjour à tous

@JHCD

J'en appel a tes compétences en sql

Dans mon script a base de ezmysql
je voulais renseigner un champ texte à base d'un fichier TXT ou contenue dans une variable voir code
► Afficher le texte
Mais je rencontre un problème d'erreur de syntaxe
J'ai bien compris qu'il avait un problème de caractère dans ma variable et qu'il faut utiliser des escapes
j'ai donc testé $mp_fichier_synoptique = _EzMySql_Real_Escape_String($mp_fichier_synoptique) trouvé sur le forum
ainsi que _SQLite_Escape ou ce que tu as conçut _SQLite_FastEncode

mais cela ne fonctionne pas, j'ai pourtant lu quelque part qu'une variable texte dans mysql pouvait largement contenir un livre entier
dans un livre il y forcement des ; ' " = etc ...

as tu STP une suggestion ?


sinon est ce que sqlite est compatible avec une base mysql ( j'ai lu que mysql est multi utilisateur ce dont j'ai besoin d'ou mon choix ) ?

Merci

A+ JL56
Modifié en dernier par jl56 le sam. 02 mai 2015 09:59, modifié 1 fois.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2273
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#10

Message par jchd »

Les fonctions *_Escape acceptent une variable, la convertissent en string (normalement), doublent les simples quotes incluses et renvoient une chaîne à inclure directement dans la commande ; elle est alors encadrée de simple qoutes, pour en faire un littéral utilisable tel quel.

Code : Tout sélectionner

ConsoleWrite(_SQLite_FastEscape("O'Reilly") & @LF)
Ton code doit donc être dans ce genre (j'ai corrigé ce qui me piquait les yeux) :
► Afficher le texte
En effet, j'avais omis de te parler d'escape des variables string dans mes réponses précédentes.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
jl56
Niveau 7
Niveau 7
Messages : 411
Enregistré le : mer. 24 oct. 2007 22:42
Localisation : 56000
Status : Hors ligne

Re: [..] Aide sur EzMySql pour completer l'exemple

#11

Message par jl56 »

Bonjour à tous,

Merci JHCD j'avais une erreur de syntaxe en plus du problème escape
Avec ton aide j'ai pu résoudre les 2

Merci

A+ JL56
Répondre