今天写程序的时候,用到了使用字符串连接到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函数在执行的时候,是以 = 为依据,取其前面和后面的值,来进行判断,连接以及返回值。
以上只是一个小经验,也许有的朋友早就知道了,现在写出来,只是为了让以前不知道的朋友不要和我犯同样的错误。其实以前也用过字符串连接字符串,只不过以前写的=前后都刚好没有空格,所以没有发现这个问题。
评论