Board logo

標題: [發問] ADO - SQL 取得欄位內 不重覆值 並排除 空值 [打印本頁]

作者: 暗黑    時間: 2010-6-11 16:39     標題: [發問] ADO - SQL 取得欄位內 不重覆值 並排除 空值

本帖最後由 暗黑 於 2010-6-11 17:06 編輯

請教各位大大
  ADO  SQL  的語法
   資料表  A
   欄位名稱:1 ,2 , 3
我下的SQL語法  如下

1. 不理會空值
    Select Distinct 2 Form A
   結果:返迴值  為-1   

2. 排除空值
    2.1  Select Distinct 2 Form A Where 2<>''
        結果:錯誤
    2.2   Select Distinct 2 Where 2<>'' Form A
        結果:錯誤

請問各位大大,指導一下,語法要如何下,我確定資料庫內是有資料的,就是無法篩出,請指導

我查了一下ado  回覆
  1. underlyingVale:目前提供者不支援重新整理基底值
  2. LockType:adLockReadOnly   (可是我是下LockType:adLockPessimistic)
  3. OriginalValue:目前的資料錄集不支援更新。這可能成為提供者或所選定類型的限制

可是 我還是不知道問題在那,請各位先進指導一下
作者: 暗黑    時間: 2010-6-14 11:31

本帖最後由 暗黑 於 2010-6-14 11:40 編輯

剛剛  用  excel 2003 一模一樣  的程式  下去執行,結果 資料是有回傳的

請問各位大大:
myDbSqlSpcIqc.theRST.RecordCount    應該是回傳資料筆數(88筆),結果回傳值是-1,這是什麼問題呢,是我ado模式有問是  還是...

ps:  ado程式段我是寫模組的模式,這個ado 已被執行多次,只有  sql  下  Distinct  時有問題

傳遞值:
strCMn="select Distinct 加工廠商 from 託外_半成品"

ado 程式段

Dim theCON As ADODB.Connection
Public theRST As ADODB.Recordset

Sub subConn(strFullName As String)
  Dim strDrv As String
  Dim IQC_SQLPass$, IQC_SQLID$, IQC_SQLName$, IQC_SQLAdderss$
   
  IQC_SQLPass = "yyyyy"
  IQC_SQLID = "yy"
  IQC_SQLName = "Spc-Iqc"
  IQC_SQLAdderss = "192-168-100-199\SQLEXPRESS"
   
    theCON.Open "Provider=SQLOLEDB.1;Password=" & IQC_SQLPass & ";Persist Security Info=True;User ID=" & IQC_SQLID & ";Initial Catalog=" & IQC_SQLName & ";Data Source=" & IQC_SQLAdderss
   
End Sub

Sub subOpen(strCMn As String)
    theRST.Open Source:=strCMn, ActiveConnection:=theCON, _
                CursorType:=adOpenStatic, LockType:=adLockPessimistic, Options:=adCmdText
End Sub

Private Sub Class_Initialize()
    Set theCON = New ADODB.Connection
    Set theRST = New ADODB.Recordset
End Sub

Private Sub Class_Terminate()
    theCON.Close
    Set theRST = Nothing
    Set theCON = Nothing
End Sub
作者: 暗黑    時間: 2010-6-14 13:15

找到了...
因 使用 Distinct   為回傳態為唯讀值,故 ado LockType 要使用 adLockReadOnly
.theRST.RecordCount   ,才會回傳筆數




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)