Cheyenne et sql-protocol quelques questions
shadwolf27-Oct-2006/14:50:23+2:00
Bonjour j'ai quelques question concernant
l'interfacage Cheyenne et sql-protocol

questions cheyenne:

Comment loader une fois pour toute le sqlprotocol dans cheyenne au lieu de faire des do %sql-protocol.r au debut de chaque segment de code rebol qui en aura besoin dans mes fichier RSP?

Questions sql-protocol.r:

Comment designer la base c koi le mieux ?
soit je fait une seule table avec tout les donnée dont j'ai besoin
soit je fait plusieur table et je met un index commun a chacune des tables pour retrouver les informations qui sont
contigue dans les tables.

example
j'ai nom, prenom age, adresse, n° de telephone, commentaires (segement de texte entre 0 et bcp de données..) comme donnée a enregistrée dans ma base.

donc soit je fait une seule table sans index et que je fait une recherche je cherche sur table.nom par example
soit je crée un index unique que je propage dans toute les tables mon index (ca fait plus de code avec cette méthode mais peut être que cela peux avoir un interret pour speeder les recherche ( faire des recherche sur des tables petites est ce préférable a faire une seule recherche sur une grosse table ? )

Comment marche like?

example dans ma base j'ai es 2 entrée
["titi" ".." "" "" ""]
["tifou" "" "" "" ""]

le premier champ c'est Table.nom
donc si je veux que le select me rapport les 2 lignes titi et tifou comment je dois m'y prendre?

est ce que
SELECT * FROM Table WHERE nom LIKE "ti*"
fonctionne ?

Merci pour ces précisions
DocKimbel27-Oct-2006/15:26:20+2:00
Réponses Cheyenne:

Dans le fichier misc/module-init.r.

Dans la version actuellement téléchargeable, ce module n'est pas appelé, il faut donc (en attendant la prochaine release), ajouter les lignes suivantes dans handlers\RSP.r :

do-cache %misc/module-init.r
on-module-start

--
DocKimbel
shadwolf27-Oct-2006/15:34:01+2:00
C noté merci pour cette réponse tres rapide ^^
shadwolf27-Oct-2006/17:46:59+2:00
DocKimbel encore une question j'ai remarquer qu'a chaque fois que je lance une une page rsp (par un bouton submit par example) j'ai la console rebol qui se réaffiche même si préalablement j'ai fait en sort de la masquée
existe t'il un moyen pour que la console ne se réaffiche pas
(cas windows) ?
Est le même comportement pour linux ?
Coccinelle28-Oct-2006/12:43:07+2:00
Shad,

Pour le des tables, je normalise systématiquement jusqu'à la 5ème forme, c'est un habitude qui m'évite de me poser bien des questions et je ne l'ai pas regretté jusqu'à présent, y compris avec sql-protocol.

Ce qui est sur avec sql-protocol, c'est que faire des recherches sur des tables contenant peu d'occurrences va plus vite que sur des tables contenant beaucoup de lignes.

Idem, faire des recherches qui retournent peu de ligne va beaucoup plus vite que des recherches qui retournent beaucoup d'occurrences.

Maintenant, je ne crois pas que la taille de la ligne aie beaucoup d'influence car les tables sont chargées en mémoires au fur et à mesure de leur utilisation, tout en restant raisonnable naturellement.

Sinon, un mécanisme permettant de ne pas refermer la base entre chaque requêtes doit permettre de gagner beaucoup en performance. Peut-être que docKimbel pourrait te conseiller pour cela.

Sinon, le like fonctionne comme tu le dis.

Marco.
shadwolf28-Oct-2006/17:45:30+2:00
Coccinel hum j'ai un probleme alors avec LIKE "ti*"

j'ai un plantage...
Coccinelle28-Oct-2006/21:27:04+2:00
Question, utilises-tu le dialect, autrement dit, tes requêtes, ce sont des block! ou des string ?¨

Sinon, donnes-moi un peu plus de précision pour que je puisse reproduire l'erreur.
shadwolf30-Oct-2006/12:33:33+1:00
apparement j'ai plus cette IP
shadwolf30-Oct-2006/12:34:37+1:00
j'ai plus ce probleme ... je vais continuer à chercher
shadwolf30-Oct-2006/13:15:44+1:00
etrange maintenant ca fonctionne tres bien pourtant c la meme ligne SELECT

Et tout cas je contaste que c'est tres rapide ....

je vais laisser mon design de base en une seule table ca me parrait etre le mieux puis j'ai entre 1000 et 2000 entreés à générer.
shadwolf30-Oct-2006/17:07:47+1:00
J'ai un probleme avec les input de type area et cheynne.
Quand je mets plein de ligne dans mon area j'ai un plantage.

En fait, c'est comme si, seulement la fin de ma requette sql etait prise en compte ...
si je ne met qu'une seule ligne dans l'area ca va si j'en met plein plein ya plantage ... j'ai juste la fin de ce que je devais stocker dans la base de donnée.
shadwolf30-Oct-2006/17:25:47+1:00
j'ai regeler le problem je dois stocker mes donnée dans ma base les données provennant de l'input area parsées à la manière de rebelBB ^^ (merci pour l'option code Greg C'EST TRS UTIL !! ^^)

Sinon j'ai remarquer que sql-protocol n'était pas charger si je lancais cheyenne.exe par contre avec un raccourcis rebol/core -cs cheyenne.r ca marche ^^
shadwolf30-Oct-2006/19:40:11+1:00
Apparement il y a un bug avec les frameset

j'ai index.html qui contient:
<html>
<frameset COLS="25%,75%">
	<frame SRC="menu.html">
	<frame SRC="welcome.html" name="showframe">
</frameset>
</html>


les 2 page existes si je les appellent indépendemment dans mon navigateur pas de problème

parcontre ensemble le menu n'est pas affiché... j'ai erreur 404 page not found
shadwolf30-Oct-2006/19:43:25+1:00
c'est bon c'est solutionné

apparament ca ne vennait pas de cheyenne mais de mon cache..
shadwolf30-Oct-2006/19:45:51+1:00
c'est firefox qui a un problème avec les frameset...

incroyable ...
coccinelle1-Nov-2006/13:11:44+1:00
Content de savoir qu'un petit script aussi simple que sql-protocol peut rendre service.

Marco.
shadwolf2-Nov-2006/13:36:28+1:00
Coccinelle mon avis sur sql-protocol c'est qu'il est génial !!

La reponse à laquelle répond SQL-protocol réponds est simple:
Vous avez besoin d'un support de base de données pour une petite base de donnée vous avez pas envie que ce soit trop lourd a installer a coder et a gérer ?

Vous souhaitez par la suite migrer votre petite base de données vers un serveur de base de données plus consistant ?


-> SQL-protocol.r

Moi j'aime la simplicité de sql-protocol.r inspirer de mysql-protocol qui est lui aussi formidable.

Maintenant je vois d 'ici les rabas-joie de tout poil vennir nous les brisser : "oui mais il y a pas ca! il fait pas ca ! etc..."

Pour ma part ce qui m'importe vraiement c'est que sql-protocol face ce qu'il dit qu'il fait et qu'il le face bien ^^

Moi je reste un fervant supporter de SQL-protocol.r
et avec cheyenne c'est que du bonheure (mon site RSP pages+ cheyenne + rebol/core + sql-protool ne pèse que 2Mo l'intallation est absoluement triviale... et la configuration inexistante merci bcp ^^)
shadwolf3-Nov-2006/10:28:14+1:00
Marco une petite question existe t'il un moyen avec SQL-protocol.r de créer des index automatique. (qui peuvent servire de clef etrangère par la suite etre attribuée à d'autre tables afin de servir de point de liaison.)

example:

ma_table [ id nom prenom etc... ] moi je veux que sql-protocol incrimente automatiquement id en fonction du dernier id entré dans la base de sorte que chacune de mes fiche ai un numéro d'identifiant unique (etiquette clef etrangère clef primaire tu appelles ca comme tu veux l'idée c'est d'avoir un champ dont la valeur est absoluement unique par fiche réalisé et dont l'itilisateur ignore l'existance ou la signification puisque ce champs sert a gérer des relation entre table)
example
ma_voiture_table [ propriétaire marque etc..]
ma_voiture_table.propriétaire recois donc ma_table.id comme ca un même propriétaire peut avoir plusieurs voitures qu'on recupère en recuperant l'id de la fiche du proprio puis en faisant une requettte [SELECT * FROM ma_voiture_table WHERE propriétaire = id_recupéré ]


Actuellement je gère l'id de mes fiche avec un système perso et indépendant de sql-protocol.r c'est pas top pour tout un tas de raison ...
coccinelle5-Nov-2006/9:59:04+1:00
Hello Shad,

Non ce n'est pas mis en oeuvre. De plus, la mise en oeuvre de cela varie d'une base à l'autre. Garde ton système perso, aisin tu auras une meilleure compatibilité avec d'atre DB.

Marco
Darkblue5-Nov-2006/13:39:35+1:00
Cela ressemble à l'autoincrementation dans Access ou l'utilisation des sequences dans oracle qu'il est possible de redefinir (ici de facon simplifiée) :
sequence: make object! [
 val: 0
 currval: does [val]
 nextval: does [return val: val + 1]
 init: func [i] [val: i]
]

il suffit juste de definir au chargement de ton application la valeur de ta sequence ou bien sauvegarder ta sequence avec tes données en fin de programme.
coccinelle5-Nov-2006/21:39:46+1:00
Tu peux aussi utiliser un Id unique base sur la date et l'heure avec un risque de doublon très faible, par exemple :
rejoin [now/yearday to-integer 1000 * to-decimal now/time]
coccinelle5-Nov-2006/21:42:33+1:00
Pardon, j'avais oublié un /precise :
rejoin [now/yearday to-integer 1000 * to-decimal now/time/precise]
shadwolf6-Nov-2006/13:58:59+1:00
Coccinelle merci bcp c'est élégant comme facon de faire j'y avais même pas pensé ^^

Encore une question la supression d'une entrée dans la table me semble pas très claire tu pourrais m'expliquer concrètement comment supprimer une entrée en prennant comme
point de reférence le numéro d'id et seulement cette ligne la (supression selective)
shadwolf6-Nov-2006/18:31:59+1:00
UPDATE et DELETE marche pas ?
pas de plantage juste aucun effet dans la base de donnée ...

a: "jean"
b: "dupond"
c: "maurice"

insert db compse [DELETE FROM persone WHERE nom = c ]

insert db compose [UPDATE personne SET nom: b prenom: a WHERE nom = c]
shadwolf6-Nov-2006/19:26+1:00
ca marche le problème que j'avais était du a une erreur dans mon code.

Login required to Post.


Powered by RebelBB and REBOL 2.7.8.4.2