技术开发 频道

VFP中连接SQL数据库

  【IT168技术文档】

  今天写程序的时候,用到了使用字符串连接到SQL数据库,开始的时候,使用以下语句:

lcDSNLess1="DRIVER = {SQL Server};" ; + "SERVER="+servername+";" ; + "UID="+uid+";" ; + "PWD="+pwd+";" ; + "DATABASE="+databasename

  在命令窗口执行 vconn1=SQLSTRINGCONNECT(m.lcDSNLess1),总是弹出一个选择DNS的对话框,百思不得其解,后来改成以下:

lcDSNLess1="DRIVER={SQL Server};" ; + "SERVER="+servername+";" ; + "UID="+uid+";" ; + "PWD="+pwd+";" ; + "DATABASE="+databasename

  再运行 vconn1=SQLSTRINGCONNECT(m.lcDSNLess1),就OK了,也许和我一样粗心的朋友要问了,这两段代码有什么不同吗?不过相信细心的朋友或者有经验的朋友已经看出来了,就是 DRIVER={ ,其中的 = ,前后都没有空格的时候,才可以运行正确;

  如果前面没有空格,但是后面有空格,执行 vconn1=SQLSTRINGCONNECT(m.lcDSNLess1),返回值总是-1;
如果前面有空格,后面没有空格,也会弹出一个选择DNS的对话框,由此也知道了SQLSTRINGCONNECT函数在执行的时候,是以 = 为依据,取其前面和后面的值,来进行判断,连接以及返回值。

  以上只是一个小经验,也许有的朋友早就知道了,现在写出来,只是为了让以前不知道的朋友不要和我犯同样的错误。其实以前也用过字符串连接字符串,只不过以前写的=前后都刚好没有空格,所以没有发现这个问题。

0
相关文章