Migration sql vers foxpro [Résolu]

Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
- - Dernière réponse : panterga
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
- 14 sept. 2009 à 18:03
Bonjour je dois migrer 200 bases de données sql contenant à peu de
choses près 4 tables chacune. Avant de me lancer dans la programmation
pure et dure j'aurais aimé connaitre si quelqu'un avait déjà travaillé
sur une technique permettant une migration sql -> foxpro; voir une
technique que vous employerais (je suis novice).Si quelqu'un connait un
logiciel qui le fait, c'est le bien venu aussi

Par avance merci

Amicalement TMCUH
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
154
Date d'inscription
vendredi 2 mai 2003
Statut
Modérateur
Dernière intervention
2 avril 2010
3
Merci
En gros le principe d'utilisation des vues distantes :

* Créer une database
CREATE DATABASE zdb

* Créer une connexion
CREATE CONNECTION zconn DATASOURCE sqltest USERID sa PASSWORD ""

* Créer une vue distante qui utilise la connexion
CREATE SQL VIEW zview REMOTE CONNECTION zconn AS select * from ;
pubs..sales

* Ouvrir la vue
USE zview

* exemples :
*Afficher
BROWSE
* parcourir
SCAN
* .... code
ENDSCAN

etc...

Je ne connais pas les commandes spécifiques SQL Server qui permettent de retrouver les bases de données existantes et leurs tables mais je pense qu'il s'agit de vues particulières, on peut donc utiliser le même principe dans une boucle.

[mailto:frederic.steczycki@mvps.org Fred]
membre actif d'AtoutFox
MS MVP VFP

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de FredArmoni
Messages postés
154
Date d'inscription
vendredi 2 mai 2003
Statut
Modérateur
Dernière intervention
2 avril 2010
0
Merci
Vaste programme...

Ma réponse sera tout d'abord une question.

Pourquoi passer de sql server à VFP?
VFP peut faire un très bon front end pour les bases SQL Server (grâce à ses vues distantes).
On n'est pas obligé d'utiliser le format natif VFP

[mailto:frederic.steczycki@mvps.org Fred]
membre actif d'AtoutFox
MS MVP VFP
Commenter la réponse de FredArmoni
Messages postés
154
Date d'inscription
vendredi 2 mai 2003
Statut
Modérateur
Dernière intervention
2 avril 2010
0
Merci
petite question : tes bases SQL Server n'ont rien qui empêcherait leur convertion ? (SP ou autres..)?

[mailto:frederic.steczycki@mvps.org Fred]
membre actif d'AtoutFox
MS MVP VFP
Commenter la réponse de FredArmoni
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
Hello, tout d'abord merci pour cette réponse, qui va m'éclairer. Alors
pour la migration vers FoxPro c'est pour une question de comptabilité.
Nous possédons un logiciel fait en foxpro, qui travaille avec des
données foxpro, il est donc inconcevable d'en refaire un autre pour une
utilisation spécifique (gain d'argent). Pour la conversion elle ne
devrait pas poser de problème vu qu'elle ne comporte que des données
par de stored procedure. Mais merci d'avoir donnée un bout de code
permettant de me connecter sur le sql car pour trouver de la doc, faut
se lever de bonne heure

Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
154
Date d'inscription
vendredi 2 mai 2003
Statut
Modérateur
Dernière intervention
2 avril 2010
0
Merci
C'est pour ça que je prie Saint-Nix tous les jours ;)

Sinon, pour la doc tu as des sites interessants (voir atoufox.org et la page liens) et pour les questions, ici c'est bien, mais il y a aussi le ng
[news://msnews.microsoft.com/microsoft.public.fr.fox news://msnews.microsoft.com/microsoft.public.fr.fox]

voilou.

[mailto:frederic.steczycki@mvps.org Fred]
membre actif d'AtoutFox
MS MVP VFP
Commenter la réponse de FredArmoni
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
par contre le code que tu m'as envoyé ça ne marche que pour odbc , pas cool d'entrée les 200 bases de données sql

Aurait tu une autre technique?

Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
154
Date d'inscription
vendredi 2 mai 2003
Statut
Modérateur
Dernière intervention
2 avril 2010
0
Merci
SQL Server n'a pas de vue récapitulant les bases existantes et leurs tables ?

sinon

OLEDB, ADO ou faire un export des bases en XML et les intégrer dans VFP par XMLToCursor()

[mailto:frederic.steczycki@mvps.org Fred]
membre actif d'AtoutFox
MS MVP VFP
Commenter la réponse de FredArmoni
Messages postés
2
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2005
0
Merci
il y a des outils qui font de l'ingenierie inversée..( reverse engenering) tel xcase mais celui-ci est payant à moins qu'il y ait une demo de 30 jours, c'est à dire qu'il génère à partir d'un base son schema et peuvent générer à partir du schema une base dans un format de données différent. En gratuit un excellent produit DBDesigner 4 qui intègre le reverse ingenering pour sql server et via odbc il doit pouvoir générer des base Fox à toi de tester!

Rémik
Commenter la réponse de remik
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
1
0
Merci
Bonjour
Voilà mon probleme j'ai une base sql sur un PDA (.sdf) Comment lire cette table à partir de foxpro 9 depuis un PC

(Je sais recuperer la table sdf sur mon pc avant de l'ouvrir) mais apparement sql serveur 2005 ne peut lire les fichiers compact sql

quelqu'un a t'il une solution ?


H
Commenter la réponse de panterga
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
Salut Panterga... quelques années plus tard ^^

sdf est un fichier quasimenent identique à mdf. Tu dois le lire via odbc par foxpro avec un connectionstring comme :

connexionhandle = SQLSTRINGCONNECT("Data Source=MyData.sdf;Persist Security Info=False;")
IF connexionhandle <0
MESSAGEBOX("Impossible de se connecter à SQL", 16, 'SQL Connect Error')
RETURN .F.
ELSE
&& Connection SQL etablie
ENDIF


Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
1
0
Merci
Bonjour TMCUH

en fait cela fonctionne à moitié voici ce que j'ai lancé :
connection_string= "Data Source=d:\hacienda\emplacement.sdf;Persist Security Info=False"
gnConnHandle=SQLSTRINGCONN(connection_string)
IF gnConnHandle>0
SELECT * FROM arrivee
ELSE
=MESSAGEBOX("Connection Failed",16,"ODBC Problem")
ENDIF


Sachant que
j'ai récupèré la base emplacement.sdf de mon PDA et je l'ai mis sur le disque D:\hacienda de mon PC

lorsque je lance ma proc le système me demande la connexion au serveur (il cherche un fichier .dsn)
si je le créé et lui donne il ouvre une table avec des infos dedans qui n'ont rien avoir avec ma base emplacement.sdf (on dirait une vieille table et je ne sais pas d'où elle sort)

si je change des données (insert etc..) par sql server 2005 express pour faire des tests même prob il ouvre
toujours la même table ....

D'où 3 questions :

1) comment lancer la proc sans qu'il me demande l'ouverture d'un fichier .dsn ?
2) comment être sur d'ouvrir la bonne table ?
3) faut il déclarer un server dans l'odbc ? si oui (je l'ai fait) pourquoi lorsque j'établis une connexion
manuelle et que je prends sql server compact il ne veut pas je dois prendre sql server express et doit
on obligatoirement faire ceci que va t'il se passer chez le client ?

voilà si tu peux m'aider super .... a plus H
Commenter la réponse de panterga
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
panterga,

le SDF n'a pas besoin d'un dsn. Foxpro par contre quand il ne trouve pas un connection aura tendance à te ramener vers l'odbc et donc vers le dsn.

Le SDF a besoin d'un sql d'installé sur la machine sur lequel il est interpréter.

Maintenant le plus facile est sans doute de créer ta connection odbc et de la faire pointer dans ton connectionstring. Tu sera plus en contrôle de la destination.


Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
1
0
Merci
Re bonjour
En fait j'ai installé sql serveur express 2005 sur mon pc et j'ai remarqué que je devais ouvrir la base emplacement.sdf avec Sql server Compact edition pour voir mes modif etc ... (sous pc sql server 2005)

mais je ne vois pas quelle string utilisée dans mon prg foxpro pour ouvrir ce sql compact j'ai un mess d'erreur si je fait :

connection_string= "DRIVER=SQL Server;SERVER=PC-DE-HERVEV\SQL Server Compact Edition;database=d:\hacienda\emplacement.sdf;Persist Security Info=False"

si je fais :

connection_string= "DRIVER=SQL Server;SERVER=PC-DE-HERVEV\SQLEXPRESS;Persist Security Info=False"

cela fonctionne mais je pense avec une base par defaut créée dans sqlexpress et non compact edition

on ne peut peut être pas ouvrir un fichier créé avec sql server compact edition à partir du PC !!!
Commenter la réponse de panterga
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
Attention ce n'est pas parce que le SDF a besoin d'une instance SQL qu'il faut l'ouvrir avec. En effet l'instance peut être arrêté (services windows).
L'utilisation du driver est bien pour une utilisation SQL Express, tu dois ouvrir ton fichier sdf comme un fichier Excel, via un datasource.


Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
1
0
Merci
En clair tu me dis que :
connection_string='DRIVER={SQL Server};SERVER=PC-DE-HERVEV\SQLEXPRESS;Data Source=d:\hacienda\emplacement.sdf'

suffit à ouvrir ma base de données ?

Certes cette connexion fonctionne mais elle ouvre une base de données qui n'est pas celle de d:\hacienda\emplacement.sdf mais une autre qui a été ouverte avec Sql express et certainement mise par défaut d'ailleurs que je mette Data source= .... ou rien c'est pareil .

Au fait by the way , dans "Données" sous VFP 9 à quoi sert connexions ? et comment l'utilise t'on je n'ai rien trouvé dans l'aide ....

En tous cas merci de t'interesser à mon cas ! Hervé
Commenter la réponse de panterga
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009
0
Merci
Non je disais que 'Driver et Server' ne doivent pas exister avec le sdf car tu ne te connecte pas sur un serveur mais sur un fichier. Driver existe peut être mais pas sous cette forme là en tout cas.

Je te conseil de passer par un dsn construit par odbc, une fois que t'as connection est ok tu peux t'attaquer au foxpro, tant que ça n'est pas ok, tu ne pourra pas évoluer.

Amicalement TMCUH
Commenter la réponse de tmcuh
Messages postés
67
Date d'inscription
dimanche 27 mars 2005
Statut
Membre
Dernière intervention
5 février 2012
1
0
Merci
Bon ok je te remercie de ta patience
En ce qui me concerne aprés avoir passer la journée la dessus et n'ayant pas evolué je laisse tomber.

j'ai bien compris que je devais installer en premier lieu l'odbc mais je n'ai que 2 solutions sql server et sql native client j'ai essayé les 2 le systeme demande à un moment de choisir le serveur si je prends sqlexpress il se connecte mais je n'arrive pas à lire la table si je prends sql compact server on ne peut faire la connexion (test echoués) et quand je vais dans sql express le seul moyen de lire la table est de se connecter en sql compact donc retour case départ .....dommage la maj de la table .sdf se fait bien sur le PDA (en C#) la copie sur le PC aussi mais l'ouverture via foxpro Niet !!! je vais utiliser un autre moyen
merci pour tout A plus H
Commenter la réponse de panterga