Mysql 经典ASP-通过SQL访问数据的问题

Mysql 经典ASP-通过SQL访问数据的问题,mysql,asp-classic,Mysql,Asp Classic,我一直在通过它使用经典的ASP和数据库访问。我使用的数据库是MySQL。ASP页正在IIS 7上运行。 我开发了两个ASP页面。首先,这是我正在使用的模式- 图书=(b\u id,标题,页面,价格,p\u id) Publisher=(p_id,姓名,国家) 书中的p_id是出版商提供的外键 现在,在一个脚本中,当在Publisher中添加记录时,我首先检查是否存在类似的记录,然后将其报告给用户。那剧本写得很好 但在另一个在书中插入记录的脚本中,我首先检查指定的发布者是否存在。但出于某种原因,这

我一直在通过它使用经典的ASP和数据库访问。我使用的数据库是MySQL。ASP页正在IIS 7上运行。 我开发了两个ASP页面。首先,这是我正在使用的模式-

图书=(b\u id,标题,页面,价格,p\u id)

Publisher=(p_id,姓名,国家)

书中的p_id是出版商提供的外键

现在,在一个脚本中,当在Publisher中添加记录时,我首先检查是否存在类似的记录,然后将其报告给用户。那剧本写得很好

但在另一个在书中插入记录的脚本中,我首先检查指定的发布者是否存在。但出于某种原因,这根本不起作用。也就是说,当我查询Publisher表以获取所有记录进行比较时,RecordSet对象的RecordCount属性返回-1

我已经全面检查了这两个脚本是否存在错误,但没有错误

为什么同一个代码在同一个目的中不起作用,而在另一个目的中起作用

工作守则-

flag = false
temprs.Open "select country from publisher where name='" & pubname & "'", conn
if temprs.RecordCount <> 0 then
    do while not temprs.EOF
        if temprs.fields("country") = pubcountry then
            flag = true
            exit do
        end if
        temprs.MoveNext
    loop
end if

在这里,prs.RecordCount返回-1。在代码的前面部分中,所有变量都已调暗。

我能否提供一种不同的解决方案,使您获得相同的结果,但不使用recordcount:

q = "select p_id from publisher where name='" & bookpub & "'"
prs.Open q, conn
pins = false
if not prs.eof then
    pid = prs("p_id")
    pins = true
end if

你确定代码是相同的吗?如果是,请将sql语句输出到屏幕并检查它们。代码相同。我确实在屏幕上输出了查询,它们很好。您调用它们的方式是否有差异?rs.open/con.execute..您是否在不起作用的部分中丢失了p_id的值。另外,你能发布相关代码吗?你的代码不同。“if temprs.RecordCount 0 then”与“if prs.RecordCount>0 then”不同。temprs的recordcount也可能为-1,除非它的计算结果为true。对于更高版本的IIS,我遇到了RecordCount不可靠的问题。这取决于您使用的记录集设置、ADO和数据库。recordcount为-1表示无法确定。对于所有这些变量,它是一个组合,几乎在每个安装和项目上都是不同的,因此使用上述方法可以保证使用相同代码处理任何组合。
q = "select p_id from publisher where name='" & bookpub & "'"
prs.Open q, conn
pins = false
if not prs.eof then
    pid = prs("p_id")
    pins = true
end if