是否权限不够?,登陆SQL的要求是sa

解决方案 »

  1.   

    --试试这个,楼主的写法好像有问题:
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dbase 5.0;DATABASE=\\ut3_wip\sys\pc2\pcout3\'
    ,'select * from [outm.dbf]')
      

  2.   

    --连接foxpro数据库应该是这样的,foxpro数据库好像不支持异地select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\', --c:\是目录
    'select * from [aa.DBF]') --aa.dbf是文件名/*--说明:SourceDB=c:\    c:\是dbf文件的存放目录
    [aa.DBF]        是dbf文件名
    --*/
      

  3.   

    ut3_wip是novell服務器.sys是分區盤符.
    我sql的連接註冊,是用sa的.
      

  4.   

    用 zjcxc(邹建) 的;
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dbase 5.0;DATABASE=\\ut3_wip\sys\pc2\pcout3\'
    ,'select * from [outm.dbf]')也出錯,提示
    伺服器: 訊息 7399,層級 16,狀態 1,行 1
    OLE DB Provider 'MICROSOFT.JET.OLEDB.4.0' 報告了錯誤。 
    [OLE/DB provider returned message: '\\ut3_wip\sys\pc2\pcout3\' 不是一個有效的路徑。請確定路徑名稱是拼對的,而且檔案位於您所連接的伺服器上。]
    OLE DB 錯誤追蹤 [OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005:   ]。
      

  5.   

    我這個是異地數據庫,如果foxpro不支持這樣連的話,那我不是要...................
    ;(
      

  6.   

    --刚才去测试了一下,可以:--如果数据库是dbase的话
    select * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dbase 5.0;DATABASE=\\xz\c$\'
    ,'select * from [temp.dbf]')--如果数据库是foxpro的话
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=\\xz\c$', --c:\是目录
    'select * from [a.DBF]') --aa.dbf是文件名
      

  7.   

    你的不能访问,有可能是权限的问题,你用映射就可以解决了:--添加映射
    exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'/*--说明
    \\xz\c$            c$是共享目录
    xz\administrator   xz是dbf文件所在的电脑名,administrator是用户名
                       密码是administrator的密码
    goselect * from 
    OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'dbase 5.0;DATABASE=\\xz\c$\'
    ,'select * from [temp.dbf]')
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=\\xz\c$', --c:\是目录
    'select * from [a.DBF]') --aa.dbf是文件名
    go--删除映射
    exec master..xp_cmdshell 'net use z: /delete /y'
      

  8.   

    我按你的方法這樣做的,你看對不對
    --ut3_wip是電腦名  sys是盤符 exec master..xp_cmdshell 'net use z: \\ut3_wip\sys$\pc2\pcout "123456" /user:ut3_wip\elva'/*--说明
    \\xz\c$            c$是共享目录
    xz\administrator   xz是dbf文件所在的电脑名,administrator是用户名
                       密码是administrator的密码*/go--select * from 
    --OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    --,'dbase 5.0;DATABASE=\\ut3_wip\sys$\pc2\pcout'
    --,'select * from [outm.dbf]')
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=\\ut3_wip\sys$\pc2\pcout', --c:\是目录
    'select * from [outm.DBF]') --aa.dbf是文件名
    go--删除映射
    exec master..xp_cmdshell 'net use z: /delete /y'報錯:
    (影響 5 個資料列)伺服器: 訊息 7399,層級 16,狀態 1,行 8
    OLE DB Provider 'MSDASQL' 報告了錯誤。 
    [OLE/DB provider returned message: [Microsoft][ODBC Visual FoxPro Driver]File 'outm.dbf' does not exist.]
    OLE DB 錯誤追蹤 [OLE/DB Provider 'MSDASQL' IColumnsInfo::GetColumnsInfo returned 0x80004005:   ]。(影響 5 個資料列)我的outm.dbf是在\\ut3_wip\sys;\pc2\pcout下的
      

  9.   

    \\ut3_wip\sys;\pc2\pcout这个是什么意思?
      

  10.   

    打錯了是冒號
    \\ut3_wip\sys;\pc2\pcout
    ut3_wip電腦名
    sys盤符
      

  11.   

    怎么会有分号? 你的不是windows的网络?
      

  12.   

    有冒号? 你搞个正常的目录来共享嘛. 不要搞特殊化.sys盤符 什么盘符?共享的常规访问方式不是:
    <计算机名>\共享名吗?
      

  13.   

    而如果第一步成功的话,查询就应该这样:select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=z:\', --c:\是目录
    'select * from [outm.DBF]') --aa.dbf是文件名
      

  14.   

    問題還是沒解決,但謝謝zjcxc(邹建).