none
跨資料庫查詢問題! RRS feed

  • 問題

  • 請教各位先進:  
    最近以VB 2008 Express (資料庫為SQL Server)練習寫程式碼
    但跨資料庫的查詢問題一直無法解決!
    程式碼如下:
       conStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\...\db1.mdf" & _
                   ";Integrated Security= True;Connect Timeout = 30;User Instance=true"
        conn = New SqlClient.SqlConnection(conStr)  
       conStr1 = "Data Source=.\SQLEXPRESS;AttachDbFilename=D:\...\db2.mdf" & _
                          ";Integrated Security= True;Connect Timeout = 30;User Instance=true"
        conn1 = New SqlClient.SqlConnection(conStr1)
    Dim DS As New DataSet
    Dim SCDA As New SqlClient.SqlDataAdapter
    ("Select A.品名,B.數量 from table1 As A,db2.dbo.table2 As B Where A.品名 = B.品名 ", conn)
    SCDA.Fill(DS, "DT訂單")
    run 後總是出現錯誤:

          無效的物件名稱 'db2.dbo.table2'

    以上寫法是否有誤?敬請各位先進不吝指教!謝謝!

    Steven
    2009年6月24日 上午 12:47

解答

  • 那是基於 Access 本身 SQL 指令的特性才能做到。
    就算換成 VB 2008,其存取 Access 的仍然是那一套 SQL,不會因為換了程式語言就會不能用。


    T-SQL 要求資料庫都必須要掛在 SQL Server 上。不然你就等到微軟何時可支援它吧 ...


    小人物一枚。
    • 已標示為解答 StevenWan 2009年6月24日 上午 05:03
    2009年6月24日 上午 04:41
    版主

所有回覆

  • 跨資料庫查詢,資料庫必須要掛在 SQL Server 上,不可以用 AttachDbFilename 的方法。
    小人物一枚。
    2009年6月24日 上午 03:11
    版主
  • 再請教一下,
      以前我使用VB6 + Access時,跨資料庫時只要在指出另一資料庫的路徑即可,
     是否VB 2008 Express + Access資料庫就可不必像 SQL Server 一樣,資料庫要掛在SQL Server上,只
     要在SQL語法內指出另一資料庫的路徑?   
     敬請不吝指教,謝謝! 
     Steven
     

    2009年6月24日 上午 03:59
  • 那是基於 Access 本身 SQL 指令的特性才能做到。
    就算換成 VB 2008,其存取 Access 的仍然是那一套 SQL,不會因為換了程式語言就會不能用。


    T-SQL 要求資料庫都必須要掛在 SQL Server 上。不然你就等到微軟何時可支援它吧 ...


    小人物一枚。
    • 已標示為解答 StevenWan 2009年6月24日 上午 05:03
    2009年6月24日 上午 04:41
    版主
  • 補充:
    那是 oledb driver 專用的 in 子句,在 mdac 2.7 以後,odbc driver 已無此功能。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年6月24日 上午 07:45