0

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

书=(b_id,标题,页数,价格,p_id)

出版商 = ( p_id , 姓名, 国家)

Book 中的 p_id 是来自 Publisher 的外键。

现在,在一个脚本中,当在 Publisher 中添加记录时,我首先检查是否存在类似记录,如果存在则将其报告给用户。该脚本工作正常。

但是在其他要在 Book 中插入记录的脚本中,我首先检查指定的出版商是否存在。但由于某种原因,这根本行不通。也就是说,当我查询 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

它进入上述代码中的循环。

而那行不通的代码 -

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

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

4

1 回答 1

2

我可以提供一个不同的解决方案,给你相同的结果,但不使用记录计数:

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
于 2012-11-30T08:28:54.720 回答