今天做VBS入库的操作,但是遇到许多的问题,
大概如下:语法错误和乱码问题,还有日期时间格式的问题,下面就自己遇到的问题写出如下解决办法。
Function mysqlinsert(fconfid,userid,handleid,rev,model,result,comm,picpath,role,testpc)
Dim conn,strConn,SQL,RS
SQL="insert into loginfo(confid,userid,handleid,rev,model,result,comm,picpath,role,testpc) values ('"& fconfid &"','"& userid &"','"& handleid &"','"& rev &"','" & model &"','"& result &"','"& comm &"','"& picpath &"','"& role &"','"& testpc &"');"
msgbox SQL
Set conn = CreateObject("ADODB.Connection")
strConn="DRIVER={MySQL ODBC 5.2w Driver};SERVER=1.1.1.1;DATABASE=xxxx;user id=xxx ; password=xxx"
conn.ConnectionString=strConn
conn.Open
Set rs= CreateObject("ADODB.Recordset")
rs.Open SQL,conn
conn.close
Set rs=Nothing
Set conn=Nothing
End Function
conf ="汉字"
mysqlinsert conf,11,11,22,11,45,11,11,1,11
2、如果解决乱码问题
(1)安装最新的MYSQL ODBC 驱动下载地址: http://dev.mysql.com/downloads/connector/odbc/5.1.html
(2)我的
数据库版本是 5.2 以上的,建议安装比较最的ODBC驱动
(3)ODBC参数如下:设置成utf-8,数据库服务器也要设置utf-8
3、提示语法错误如何解决
一般都是因为在写数据库的时间,没有增加单引号引起的问题如
正确语句 "insert into loginfo(confid,userid) values ('"& fconfid &"','"& userid"');"
错误语句 "insert into loginfo(confid,userid) values ("& fconfid &","& userid");"
4、插入mysq datatime格式不匹配如何解决
在网上找到下面的函数,可以直接使用,就可以解决格式的问题。
Function Format_Time(s_Time, n_Flag)
Dim y, m, d, h, mi, s
Format_Time = ""
If IsDate(s_Time) = False Then Exit Function
y = cstr(year(s_Time))
m = cstr(month(s_Time))
If len(m) = 1 Then m = "0" & m
d = cstr(day(s_Time))
If len(d) = 1 Then d = "0" & d
h = cstr(hour(s_Time))
If len(h) = 1 Then h = "0" & h
mi = cstr(minute(s_Time))
If len(mi) = 1 Then mi = "0" & mi
s = cstr(second(s_Time))
If len(s) = 1 Then s = "0" & s
Select Case n_Flag
Case 1
' yyyy-mm-dd hh:mm:ss
Format_Time = y & m & d & h & mi & s
Case 2
' yyyy-mm-dd
Format_Time = y & "-" & m & "-" & d &" " & h & ":" & mi & ":" & s
Case 3
' hh:mm:ss
Format_Time = h & ":" & mi & ":" & s
Case 4
' yyyy年mm月dd日
Format_Time = y & "年" & m & "月" & d & "日"
Case 5
' yyyymmdd
Format_Time = y & m & d
End Select
End Function
'调用函数生成时间
msgbox format_time(now(),2)
VBS 操作数据库这方面的东西还是比较少的,今天搞了一个下午,总算是搞定了。写出来,给不会的人一点指导。