<!--#include file="conn.asp"-->
if danhao="" then
response.write "请输入要查找的货号。"
else
fgsbm = left(danhao,4)
huohao = mid(danhao,5,9)
jshj = mid(danhao,16,2)
set rs=server.createobject("adodb.recordset")
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and sxhh ='"&huohao&"'"
rs.open sql,conn,1,1
if rs.eof then
Response.Write "没有搜索到内容。"
else
do while not rs.eof
单号的格式为1001-12345-123
前四位为公司编码:固定的 ;
中间为货号 不固定 有的3位,有的4位 ,有的5位不等;
最后组为件数 :不固定 ;
现在要将其拆分为三组数字 去查询不同的数据库?
fgsbm = left(danhao,4)
huohao = mid(danhao,5,9) ??
jshj = mid(danhao,16,2) ??
然后根据fgsbm 去连接不同的数据库查询 这个sql语句要怎么写?
12 个解决方案
#1
if语句判断下要查询哪个数据库不就行了,不同的内容sql设置不同的语句
你的conn配置的用户需要有访问这3个数据库的权限才行
你的conn配置的用户需要有访问这3个数据库的权限才行
#2
fgsbm=split(danhao,"-")(0)
可以参考一下split的用法
可以参考一下split的用法
#3
权限肯定是有的 用的sa
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and sxhh ='"&huohao&"'"
rs.open sql,conn,1,1
if rs.eof then
Response.Write "没有搜索到内容。"
else
do while not rs.eof
能否帮忙改下看看
#4
还有要如何判断 用户输入的字符串不是
1123-22222-3333
这样的格式 ???
1123-22222-3333
这样的格式 ???
#5
danhao="1001-12345-123"
set rx=new RegExp
rx.Global=true
rx.Pattern="^\d{4}-\d{3,}-\d{1,}$"'第二组数字最少3位,如果有他限制自己修改,低三组数字最少1位
if not rx.Test(danhao) then
response.write "单号错误"
response.end
end if
arr=split(danhao,"-")
set rs=server.createobject("adodb.recordset")
if arr(0)="xxxx" then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and sxhh ='"&huohao&"'"
elseif arr(0)="xxxxxxxxxxx"
sql="xxxxxxxxxxxx"
else'默认查询的数据库
sql=""
end if
rs.open sql,conn,1,1
if rs.eof then
Response.Write "没有搜索到内容。"
else
do while not rs.eof
#6
你这个没有连接不同的数据库啊
#7
比如现在有两个库A,B
A 输入的单号 1001-11890-1 去查询A库
B输入的单号 1002 -1122-110 去查询B库
这样没有链接到不同的数据库啊 链接的还是conn.asp中的数据库啊
以下是conn.asp的文件
A 输入的单号 1001-11890-1 去查询A库
B输入的单号 1002 -1122-110 去查询B库
if danhao="" then
response.write "请输入要查找的货号,格式为公司编码+货号+件数,如:4001-123456-10。"
else
set rx = new RegExp
rx.Global = true
rx.Pattern="^\d{4}-\d{3,}-\d{1,}$"'第二组数字最少3位,如果有他限制自己修改,低三组数字最少1位
if not rx.Test(danhao) then
response.Write "您输入的单号格式错误"
response.End()
end if
arr = split(danhao,"-")
'fgsbm = split(danhao,"-")(0)
'sxhh = split(danhao,"-")(1)
'jshj = split(danhao,"-")(2)
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
rs.open sql,conn,1,1
这样没有链接到不同的数据库啊 链接的还是conn.asp中的数据库啊
以下是conn.asp的文件
<%
set conn=server.createobject("ADODB.CONNECTION")
str = "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=A"
conn.open str
Set rs=server.CreateObject("adodb.recordset")
if err.number<>0 then
err.clear
conn.close
set conn=nothing
response.write "数据库连接出错!"
Response.End
else
if err then
err.clear
conn.close
set conn=nothing
response.write "数据库连接出错!"
Response.End
end if
end if
%>
#8
。。。你不就关闭下原来的链接,重新open下链接到不同的数据库就好了。。
conn.close
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxxxxxxxxxxxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
conn.close
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxxxxxxxxxxxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
#9
嗯 这样子是可以了 谢谢版主
还有个疑问 这样放在search.asp 会不会有安全问题?
如何将连接语句放到conn.asp文件?
还有个疑问 这样放在search.asp 会不会有安全问题?
如何将连接语句放到conn.asp文件?
#10
如果你的要求有这种,可以将链接字符串放到conn.asp中,不用每次都写死在页面
安全不安全看你代码了,要是代码写的有漏洞你放哪里都不安全
connstra="aaaaaaaa"
constrb="bbbbbbbbbb"
安全不安全看你代码了,要是代码写的有漏洞你放哪里都不安全
#11
连接语句卸载conn.asp 怎么弄 怎么跟search.asp关联
版主 再教教 最好帮忙写出来
版主 再教教 最好帮忙写出来
#12
#1
if语句判断下要查询哪个数据库不就行了,不同的内容sql设置不同的语句
你的conn配置的用户需要有访问这3个数据库的权限才行
你的conn配置的用户需要有访问这3个数据库的权限才行
#2
fgsbm=split(danhao,"-")(0)
可以参考一下split的用法
可以参考一下split的用法
#3
权限肯定是有的 用的sa
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and sxhh ='"&huohao&"'"
rs.open sql,conn,1,1
if rs.eof then
Response.Write "没有搜索到内容。"
else
do while not rs.eof
能否帮忙改下看看
#4
还有要如何判断 用户输入的字符串不是
1123-22222-3333
这样的格式 ???
1123-22222-3333
这样的格式 ???
#5
danhao="1001-12345-123"
set rx=new RegExp
rx.Global=true
rx.Pattern="^\d{4}-\d{3,}-\d{1,}$"'第二组数字最少3位,如果有他限制自己修改,低三组数字最少1位
if not rx.Test(danhao) then
response.write "单号错误"
response.end
end if
arr=split(danhao,"-")
set rs=server.createobject("adodb.recordset")
if arr(0)="xxxx" then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and sxhh ='"&huohao&"'"
elseif arr(0)="xxxxxxxxxxx"
sql="xxxxxxxxxxxx"
else'默认查询的数据库
sql=""
end if
rs.open sql,conn,1,1
if rs.eof then
Response.Write "没有搜索到内容。"
else
do while not rs.eof
#6
你这个没有连接不同的数据库啊
#7
比如现在有两个库A,B
A 输入的单号 1001-11890-1 去查询A库
B输入的单号 1002 -1122-110 去查询B库
这样没有链接到不同的数据库啊 链接的还是conn.asp中的数据库啊
以下是conn.asp的文件
A 输入的单号 1001-11890-1 去查询A库
B输入的单号 1002 -1122-110 去查询B库
if danhao="" then
response.write "请输入要查找的货号,格式为公司编码+货号+件数,如:4001-123456-10。"
else
set rx = new RegExp
rx.Global = true
rx.Pattern="^\d{4}-\d{3,}-\d{1,}$"'第二组数字最少3位,如果有他限制自己修改,低三组数字最少1位
if not rx.Test(danhao) then
response.Write "您输入的单号格式错误"
response.End()
end if
arr = split(danhao,"-")
'fgsbm = split(danhao,"-")(0)
'sxhh = split(danhao,"-")(1)
'jshj = split(danhao,"-")(2)
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
rs.open sql,conn,1,1
这样没有链接到不同的数据库啊 链接的还是conn.asp中的数据库啊
以下是conn.asp的文件
<%
set conn=server.createobject("ADODB.CONNECTION")
str = "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=A"
conn.open str
Set rs=server.CreateObject("adodb.recordset")
if err.number<>0 then
err.clear
conn.close
set conn=nothing
response.write "数据库连接出错!"
Response.End
else
if err then
err.clear
conn.close
set conn=nothing
response.write "数据库连接出错!"
Response.End
end if
end if
%>
#8
。。。你不就关闭下原来的链接,重新open下链接到不同的数据库就好了。。
conn.close
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxxxxxxxxxxxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
conn.close
set rs=server.createobject("adodb.recordset")
if arr(0)="1001" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='111' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
elseif arr(0) ="1002" Then
conn.open "Provider=SQLOledb;data source=.;uid=sa;pwd=aaaa;DATABASE=xxxxxxxxxxxxxxxxxxxxxxxxx"
sql="select jydbh,fhrxm,shrxm,shrdh,jydzt,Name from jydxx,Bm_jydzt where jydzt=id and (fgsbm='112' ) and sxhh ='"&arr(1)&"' and jshj="&arr(2)&""
end if
#9
嗯 这样子是可以了 谢谢版主
还有个疑问 这样放在search.asp 会不会有安全问题?
如何将连接语句放到conn.asp文件?
还有个疑问 这样放在search.asp 会不会有安全问题?
如何将连接语句放到conn.asp文件?
#10
如果你的要求有这种,可以将链接字符串放到conn.asp中,不用每次都写死在页面
安全不安全看你代码了,要是代码写的有漏洞你放哪里都不安全
connstra="aaaaaaaa"
constrb="bbbbbbbbbb"
安全不安全看你代码了,要是代码写的有漏洞你放哪里都不安全
#11
连接语句卸载conn.asp 怎么弄 怎么跟search.asp关联
版主 再教教 最好帮忙写出来
版主 再教教 最好帮忙写出来