OVH Cloud OVH Cloud

Import Fox Pro dans SQL Server

10 réponses
Avatar
aitoz
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la copie
d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro qui
est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des données
de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès aux
données dans la base SQL Server ???

Merci et bonne journée

Laurent

10 réponses

Avatar
Thierry
Bonjour,

Tu peux essayer avec des requêtes distribuées :
(installer le VFPOLEDB.DLL sur le serveur)

EXEC sp_addlinkedserver
@server = 'fox',
@srvproduct = 'fox',
@provider = 'VFPOLEDB',
@datasrc = 'd:database.dbc'

ensuite :

INSERT INTO tableSql (col1, col2) SELECT col1, col2 FROM fox...tableFox

--
Thierry


"aitoz" a écrit dans le message de news:
%
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la
copie d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro
qui est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des données
de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès aux
données dans la base SQL Server ???

Merci et bonne journée

Laurent



Avatar
aitoz
je n'ai pas encore eu le temps de regarder la procédure stockée.
Je regarde merci !

Ps : Il n'y a pas moyen d'utiliser DTS a travers une procédure stockée pour
faire des mises a jours de tables, d'une base de données vers l'autre ???


"Thierry" a écrit dans le message de news:

Bonjour,

Tu peux essayer avec des requêtes distribuées :
(installer le VFPOLEDB.DLL sur le serveur)

EXEC sp_addlinkedserver
@server = 'fox',
@srvproduct = 'fox',
@provider = 'VFPOLEDB',
@datasrc = 'd:database.dbc'

ensuite :

INSERT INTO tableSql (col1, col2) SELECT col1, col2 FROM fox...tableFox

--
Thierry


"aitoz" a écrit dans le message de news:
%
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la
copie d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro
qui est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des
données de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès
aux données dans la base SQL Server ???

Merci et bonne journée

Laurent







Avatar
aitoz
je suis entrain d'essayer.
Mon premier probleme est que je n'utilise pas une base a proprement parler.
Il s'agit d'une base foxpro avec des fichiers dans un repertoire.
Il existe deux methodes de bases avec FoxPro ! une en base de donnée avec un
fichier principal, et une autre méthode avec des fichiers éclatés. Chaque
fichier étant une table.
En gros.
Du coup je dois mettre quoi en Datasrc ???

Je creuse ! c'est un peu nouveau pour moi et je découvre.
Je vous tiens au courant si je trouve.

En tous cas, merci beaucoup pour votre aide.

"Thierry" a écrit dans le message de news:

Bonjour,

Tu peux essayer avec des requêtes distribuées :
(installer le VFPOLEDB.DLL sur le serveur)

EXEC sp_addlinkedserver
@server = 'fox',
@srvproduct = 'fox',
@provider = 'VFPOLEDB',
@datasrc = 'd:database.dbc'

ensuite :

INSERT INTO tableSql (col1, col2) SELECT col1, col2 FROM fox...tableFox

--
Thierry


"aitoz" a écrit dans le message de news:
%
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la
copie d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro
qui est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des
données de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès
aux données dans la base SQL Server ???

Merci et bonne journée

Laurent







Avatar
aitoz
voici un lien ou ils parlent du probleme.
Je test avant de crier victoire !
Mais ca ressemble bien a ce que je veux faire.

Ps : il y a meme l'instruction pour refermer le server. lol

"Thierry" a écrit dans le message de news:

Bonjour,

Tu peux essayer avec des requêtes distribuées :
(installer le VFPOLEDB.DLL sur le serveur)

EXEC sp_addlinkedserver
@server = 'fox',
@srvproduct = 'fox',
@provider = 'VFPOLEDB',
@datasrc = 'd:database.dbc'

ensuite :

INSERT INTO tableSql (col1, col2) SELECT col1, col2 FROM fox...tableFox

--
Thierry


"aitoz" a écrit dans le message de news:
%
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la
copie d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro
qui est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des
données de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès
aux données dans la base SQL Server ???

Merci et bonne journée

Laurent







Avatar
aitoz
http://fox.wikis.com/wc.dll?Wiki~VisualFoxProDataFromSQLServer~VFP

J'avais oublié le lien
Avatar
Thierry
Spécifier le répertoire contenant les fichiers .DBF au lieu du fichier .DBC

--
Thierry


"aitoz" a écrit dans le message de news:

je suis entrain d'essayer.
Mon premier probleme est que je n'utilise pas une base a proprement
parler.
Il s'agit d'une base foxpro avec des fichiers dans un repertoire.
Il existe deux methodes de bases avec FoxPro ! une en base de donnée avec
un fichier principal, et une autre méthode avec des fichiers éclatés.
Chaque fichier étant une table.
En gros.
Du coup je dois mettre quoi en Datasrc ???

Je creuse ! c'est un peu nouveau pour moi et je découvre.
Je vous tiens au courant si je trouve.

En tous cas, merci beaucoup pour votre aide.

"Thierry" a écrit dans le message de news:

Bonjour,

Tu peux essayer avec des requêtes distribuées :
(installer le VFPOLEDB.DLL sur le serveur)

EXEC sp_addlinkedserver
@server = 'fox',
@srvproduct = 'fox',
@provider = 'VFPOLEDB',
@datasrc = 'd:database.dbc'

ensuite :

INSERT INTO tableSql (col1, col2) SELECT col1, col2 FROM fox...tableFox

--
Thierry


"aitoz" a écrit dans le message de news:
%
Bonjour a tous,

je voudrais savoir si je peux dans une procédure stockée, effectuer la
copie d'un table d'une base FoxPro vers une Table SQL Server ?

J'ai une table avec toutes les commandes d'achats dans une base fox pro
qui est alimenté par les users chaque jour.
Je voudrais une a deux fois par jour effectuer une mise a jour des
données de la table dans la base FoxPro vers la base SQL Server.

Est-ce possible et si oui est-ce la meilleur solution pour avoir accès
aux données dans la base SQL Server ???

Merci et bonne journée

Laurent











Avatar
aitoz
C'est ce que j'ai fais ! mais le probleme est qu'il me dit "Invalid name
object GPRECEPT".
GPRECEPT etant le nom du fichier GPRECEPT.dbf.

Voici ma procédure stockée :
CREATE PROCEDURE ps_sgsa_maj_gprecep

AS

-- Example of using VFP free tables in SQL Server

exec sp_addlinkedserver

@server = 'VFPoledbDbf',

@srvproduct = 'VFP',

@provider = 'VFPOLEDB.1',

@datasrc = 'BOLLSGPSTOCK'

INSERT INTO dbo.PFLEX_GPRECEPT

SELECT GPRECEPT.RE_CODE, GPRECEPT.RE_RFOU, GPRECEPT.RE_DMOU,

GPRECEPT.RE_FOUR, GPRECEPT.RE_ARTI, GPRECEPT.RE_DESI, GPRECEPT.RE_DES2,
GPRECEPT.RE_DES3,

ETC...

FROM GPRECEPT

exec sp_dropserver @server = 'VFPoledbDbf'
Avatar
aitoz
En fait quand j'execute sp_linkedservers j'ai la liste des serveur lancés.
Et je vois bien mon serveur 'VFPoledbDbf'.

Par contre, quand je veux lister les tables je lance :
sp_table_name et là il m'affiche un message d'erreur :
OLE DB PROVIDER 'VFPoleDB.1' reported an error : Acces Denied !

Vous avez une piste de reflexion ?
Avatar
Thierry
Je viens de mettre à jour cette page Wiki. Le @datasrc de l'exemple n'était
pas cohérent.

--
Thierry


"aitoz" a écrit dans le message de news:

http://fox.wikis.com/wc.dll?Wiki~VisualFoxProDataFromSQLServer~VFP

J'avais oublié le lien



Avatar
Thierry
Voir : sp_addlinkedsrvlogin


--
Thierry


"aitoz" a écrit dans le message de news:

En fait quand j'execute sp_linkedservers j'ai la liste des serveur lancés.
Et je vois bien mon serveur 'VFPoledbDbf'.

Par contre, quand je veux lister les tables je lance :
sp_table_name et là il m'affiche un message d'erreur :
OLE DB PROVIDER 'VFPoleDB.1' reported an error : Acces Denied !

Vous avez une piste de reflexion ?