作者 主題: 又一個ASP的問題要麻煩各位高手了  (閱讀 5049 次)

0 會員 與 1 訪客 正在閱讀本文。

bobbook

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
又一個ASP的問題要麻煩各位高手了
« 於: 2003-08-20 16:47 »
現今我用ASP需用到DB中的2個TABLE
MEMBER table 中有uid(p key int) user_id(char) pwd(char)
permission table 中有uid(int) ip(char) port (char)
其中再上一個判斷頁中設定
Session("uid")=rs("uid")

ASP如下

set groupdb = Server.Createobject("ADODB.Connection")
groupdb.open "DSN=groupdb; UID=; PWD="
SQL = ""
SQL = SQL + "SELECT * FROM permission WHERE RTRIM(uid)=" + "'" + Session("uid") + "'"
set rs = groupdb.Execute(SQL)
Do While NOT rs.EoF
ip = rs("ip")
port = rs("port")
tmp = tmp + "[" + "'" + Trim(ip) + Trim(port) + "'" + "," + "'" + "VideoImage4.asp?hostaddress=" + Trim(ip) + "&channel=" + Trim(port)  + "'" + "]"
rs.movenext
IF NOT rs.EoF THEN
tmp = tmp + ","
END IF
LOOP
groupdb.close
tmp = "[" + tmp + "]"


這時出現一個問題
系統顯示下列錯誤訊息
Microsoft VBScript 執行階段錯誤 (0x800A000D)
型態不符合: '[string: "SELECT * FROM permis"]'

找書後的結果得到原因為
MEMBER table 中的uid(p key int)和
permission table 的uid(int)其資料型態為INT
所以SQL搜尋時出現錯誤
在更改上述UID的資料型態為CHAR後問題解決
但是我又不能改變上述2個TABLE的資料型態(因為需要利用INT作識別動作)
只好想辦法在SQL中定義UID的資料型態

所以向問一下各位高手有無解決方法

reggie

  • 活潑的大學生
  • ***
  • 文章數: 386
    • 檢視個人資料
又一個ASP的問題要麻煩各位高手了
« 回覆 #1 於: 2003-08-20 17:56 »
RTRIM是用在type char,不能改變table型態的話
那你就轉向改變數的型態,trim(session("uid"))後,再用Cint()轉成int
所以大概的code如下
tmpstr = trim(session("uid"))
SQL = SQL + "SELECT * FROM permission WHERE uid=" + "'" + Cint(tmpstr) + "'"

我不知道這符不符你要的需求,但大至的方向就是這樣
不能改table的type就從變數下手...加油!!

bobbook

  • 可愛的小學生
  • *
  • 文章數: 24
    • 檢視個人資料
又一個ASP的問題要麻煩各位高手了
« 回覆 #2 於: 2003-08-22 13:50 »
感謝
問題現在已解決了