Je suis vraiment intéressé à apprendre ocaml, rapidement (ils ont dit qu'il pourrait être compilé en code natif) et c'est fonctionnel. J'ai donc essayé de coder quelque chose de facile comme activer le planificateur d'événements mysql.Comment compiler ocaml en code natif
#load "unix.cma";;
#directory "+mysql";;
#load "mysql.cma";;
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
Il fonctionne très bien sur interprète OCaml, mais quand je tentais de le compiler à natif (j'utilise ubuntu karmique), aucune de ces commandes a travaillé
ocamlopt -o mysqleventon mysqleventon.ml unix.cmxa mysql.cmxa
ocamlopt -o mysqleventon mysqleventon.ml unix.cma mysql.cma
J'ai aussi essayé
ocamlc -c mysqleventon.ml unix.cma mysql.cma
tous résultant même message
File "mysqleventon.ml", line 1, characters 0-1:
Error: Syntax error
Alors j'ai essayé de supprimer le « # charge », de sorte que le code va comme ceci
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
Le message résultant ocamlopt
File "mysqleventon.ml", line 1, characters 9-28:
Error: Unbound value Mysql.quick_connect
J'espère que quelqu'un pourrait me dire, où est-ce que je fais faux.
Juste un commentaire: vous n'avez pas besoin Printf.sprintf dans le code que vous montrez. –
Je l'ai modifié de net (j'ai oublié l'adresse) comme ma première tentative sur la base de données. J'ai essayé votre suggestion, et vous avez raison, alors j'enlève la partie "Printf.sprintf" du code. Je vous remercie. –