使用visual foxpro将数据库转储到mysql

时间:2011-07-19 19:03:43

标签: mysql visual-foxpro

我使用了离开stru2mysql.prg和vfp2mysql_upload.prg来从DBF创建.sql转储文件。我使用ODBC从vfp连接到mysql数据库。我知道如何上传sql转储文件,但我需要自动化整个过程,即在创建转储文件后,我的visual foxpro程序可以在没有第三方的情况下(自动)上传转储文件。我想使用source命令,但需要在mysql提示符下运行。这里的假设是我的最终用户不知道如何导入(其中大部分都没有)。请告诉我如何自动导入sql文件到mysql database.thank you

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是Foxpro中的各种SQL *函数。请参阅SQLCONNECT(或SQLSTRINGCONNECT),SQLEXECSQLDISCONNECT功能上的VFP帮助或MSDN,以帮助您入门。 Microsoft在文档中提供了很好的示例。

您可能还想使用FILETOSTR将Leafe程序的输出转换为SQLEXEC函数的字符串。

答案 1 :(得分:0)

这是我用来从Visual FoxPro数据库获取数据并上传到MySql数据库的步骤。这些都被放入窗体上的自定义方法,该方法由命令按钮触发。例如,该方法将是“uploadnewdata”,我为我需要的任何数据表传递参数

1)连接到服务器 - 我使用MySql ODBC 2)验证用户(这使用SQLEXEC为用户表提取正确的匹配记录     如果M.WorkingDatabase<> -1 nRetVal = SQLEXEC(m.WorkingDatabase,“SELECT * FROM users”,“csrUsersOnServer”)

SELECT csrUsersOnServer
SELECT userid,FROM csrUsersOnServer;
WHERE ALLTRIM(UPPER(userid))=ALLTRIM(UPPER(lcRanchUser));
 AND ALLTRIM(UPPER(lcPassWord))=ALLTRIM(UPPER(lchPassWord));
INTO CURSOR ValidUsers
IF _TALLY>=1
     ELSE
=MESSAGEBOX("Your Premise ID Does Not Match Any Records On The Server","System Message")
RETURN 0
ENDIF
ELSE
=MESSAGEBOX("Unable To Connect To Your Database", "System Message")
RETURN 0
ENDIF

3)一旦成功,我创建了我的基本光标(这是我发送的那个) 4)然后我循环遍历该游标,为字段中的值创建变量 5)然后使用SQLEXEC和INSERT INTO,我更新每条记录 6)程序完成处理光标后,会生成一个带有'finished'消息的消息框,控件返回到表单。

所有用户必须做的,是选择起始表并输入他们的登录信息