connection bd avec MAGIC 3.5
JJV19-Oct-2006/17:26:09+2:00
bonsoir
je craque, depuis 3 jours...help me

config serveur de societeg.com => apache magic mysql

je souhaite récuperer des donnees dans ma base.

1/voici la page .rhtml

 	<html>
        <head>
	<title>Utilisation d'une source de données</title></head>
        <body>


	<rebol>
		
                library/private %db.r

                        conn: db/datasource/private %valnet.rds
                        datagrid conn/doSQL "select * from nom"
                        conn/close
        </rebol>
	</body>
	</html>





2/ voici le code erreur
make object! [
    code: 505
    type: 'access
    id: 'invalid-spec
    arg1: mysql://valnet_1:motdepasse@mysql.societeg.com/valnet
    arg2: none
    arg3: none
    near: [ret/connection-port: open to-url dburl 
        ret/command-port:
    ]
    where: 'datasource
]


A/ voici le code db.r
[code]
REBOL [
	subject: "Librairie de connexion à une base de données"
	version: 1.1 
	author: "Olivier Auverlot"
]

db: make object! [
	datasource: func [ filename [ file! ] "Fichier décrivant la source de données" 
		/private "La source de données est définie dans le répertoire courant" 
		/local obj lpath merr dburl ident ret
	] [

		ret: make object! [
	                connection-port: none
	                command-port: none
			doSQL: func [ request ] [
				insert command-port request
				return copy command-port
			]
			close: does [
				system/words/close command-port
				system/words/close connection-port
			]
		]

	        either not private [ lpath: join m-datasources-path filename ] [ lpath: join curdir filename 
                
                ]
		if error? merr: try [
			obj: context load lpath
			either not none? obj/user [ 
				ident: copy join  obj/user [ ":" obj/password "@" ] 
			] [ ident: copy "" ]
			dburl: copy join obj/dbtype [ "://" ident ]
			if not none? obj/host [
				dburl: copy join dburl [ obj/host "/" ]
			]
			dburl: copy join dburl obj/database 
			ret/connection-port: open  to-url dburl
			ret/command-port: first ret/connection-port
			return ret
		] [
			m-error (mold disarm merr)
			return false 
		]
	]
]







B/ voici le code de valnet.rds
rebol[]
[
        dbtype: "mysql"
        host: "mysql.societeg.com"
        user: "valnet_1"
        password: "motdepasse"
        database: "valnet"

]


merci pour votre aide

Jean-jacques
coccinelle20-Oct-2006/8:50:46+2:00
Hello Jean-Jacques,

A mon avis, d'une manière ou d'une autre le protocole mysql n'est pas chargé dans ton application.

J'ai une question à mon tour, où peut-on télécharger magic 3.5 ?

Merci, Marco.
JJV20-Oct-2006/10:20:55+2:00
Bonjour Marco,


Sur ce fil Francois et Olivier évoquaient un problème similaire
http://www.codeur.org/forum/message.php?ID_Sujet=3044&page=2



Magic
Sur le site perso d'Olivier Auverlot

http://perso.numericable.fr/~oauverlo/



le lien download de Magic 35e
http://perso.numericable.fr/~oauverlo/C591593862/E20050812232525/Media/File1.zip



jean-jacques
coccinelle20-Oct-2006/15:03:45+2:00
Merci pour les liens.

Pour ton problème, il te faut utiliser le protocol de Nenad, c'est ici http://softinnov.org/rebol/mysql.shtml

Ensuite, tu places le fichier mysql-protocol.r avec le fichier db.r et tu adapte ta page ainsi :
<html>
    <head>
	<title>Utilisation d'une source de données</title></head>
        <body>

	<rebol>
                library/private %db.r
                library/private %mysql-protocol.r

                conn: db/datasource/private %valnet.rds
                datagrid conn/doSQL "select * from nom"
                        conn/close
        </rebol>
    </body>
</html>

J'espère que ça peut résoudre ton problème.

Marco.
JJV20-Oct-2006/23:36:47+2:00
merci Marco pour la piste mysql-protocol.r

après de nombreuses manipssssssss

voici le code qui fonctionne


1/page .rhtml


<html>
    <head>
	<title>Utilisation d'une source de données</title></head>
        <body>

	<rebol>
		
		
                library/private %db.r
                library/private %mysql-protocol.r


    db: open mysql://valnet_1:motdepasse@localhost/valnet                
    insert db "SELECT * FROM tutoriel" 
    print copy db                                       
    close db   
		
        </rebol>
    </body>
</html>




merci encore

Jean-jacques
coccinelle21-Oct-2006/9:11:07+2:00
Hello Jean-Jacques,

Content que quelque chose fonctionne.

J'imagine que si tu n'est pas arrivé à faire fonctionner le composant datagrid, c'est que le fichier html.r n'était pas chargé comme c'était déjà pas le cas pour sql-protocol.r

De plus, datagrid est une fonction de l'objet html, donc elle doit être appellée ainsi : html/datagrig ...

J'aurais tendance à faire les choses comme ça :
<html>
    <rebol>
; Initialisation de toutes les librairies et connexion et tout ce qui pourrait l'être si nécessaire
        library/private %html.r
        library/private %db.r
        library/private %mysql-protocol.r
        conn: db/datasource/private %valnet.rds
    </rebol>

    <head>
	<title>Utilisation d'une source de données</title>
    </head>

    <body>
        <rebol>
            html/datagrid/sql [conn "SELECT * FROM tutoriel"]
        </rebol>
    </body>
    <rebol>
; Ferme la connection et nettoie tout ce qui doit l'être si nécessaire.
        conn/close
    </rebol>
</html>

En organisant tes pages ainsi, ce sera plus facile de t'y retrouver.

Marco.
coccinelle21-Oct-2006/9:30:23+2:00
L'erreur est humaine.

En relisant la doc, je te suggère d'essayer plutôt ça :
<html>
    <rebol>
; Initialisation de toutes les librairies et connexion et tout ce qui pourrait l'être si nécessaire
        library/private %html.r
        library/private %db.r
        library/private %mysql-protocol.r
        conn: db/datasource/private %valnet.rds
    </rebol>

    <head>
	<title>Utilisation d'une source de données</title>
    </head>

    <body>
        <rebol>
            html/datagrid conn/doSQL "SELECT * FROM tutoriel"]
        </rebol>
    </body>

    <rebol>
; Ferme la connection et nettoie tout ce qui doit l'être si nécessaire.
        conn/close
    </rebol>
</html>


Marco.
JJV21-Oct-2006/17:05:31+2:00
Bonjour Marco

j'ai donc fait des essais avec le code de la doc Magic 3.5 mais rien ne fonctionne par contre avec celui-ci ok
effectivement la fonction html est très intéressante.
page .rhtml
<html>
    <head>
	<title>Utilisation d'une source de données</title></head>
        <body>

	<rebol>
		library/private %html.r
                library/private %db.r
                library/private %mysql-protocol.r


    		db: open mysql://valnet_1:motdepasse@localhost/valnet       
  
    		insert db "SELECT * FROM tutoriel" 

    		print html/datagrid/noborder copy db    
	                                  
    		close db   
		
        </rebol>
    </body>
</html>




voici ma page de résultat ok mais j'ai un
 none 
en fin de page qui est gênant


1	Napoléon	Bonaparte	napo@corse.fr
2	Arc	Jeanne	bergere@domremy.fr
3	Empereur	Marc-Aurèle	empereur@rome.it
4	Cretinus	Alpinus	idiot@village.org
5	hhCretinus	hhAlpinus	hhidiot@village.org
6	Napoléon	Bonaparte	napo@corse.fr
7	Arc	Jeanne	bergere@domremy.fr
8	Empereur	Marc-Aurèle	empereur@rome.it
9	Cretinus	Alpinus	idiot@village.org
10	hhCretinus	hhAlpinus	hhidiot@village.org
11	Napoléon	Bonaparte	napo@corse.fr
12	Arc	Jeanne	bergere@domremy.fr
13	Empereur	Marc-Aurèle	empereur@rome.it
14	Cretinus	Alpinus	idiot@village.org
15	hhCretinus	hhAlpinus	hhidiot@village.org
[code] none 



[/code]

Comment faire pour le faire disparaitre?


merci et bon week end à tous

Jean-jacques
coccinelle21-Oct-2006/20:49:25+2:00
Enlève le print devangt le html/datatgrid ...
JJV21-Oct-2006/21:57:30+2:00
YES évidement Marco

Jean-jacques

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2