我的c盘的空间不够了,我就把sql装在e盘下,然后再导入数据,现在我在企业管理工具里面能看到我导入的数据,也能用数据库查询工具获得表中的数据。但是我的程序却读取不到数据库的内容。报错就是:对象名 taxi 无效。taxi就是数据导入sql以后的表名,taxi表名无效,说明没有找到这个表啊!这是怎么回事了? 我在程序中是用的sa登录的sqlserver的,应该是有对taxi表所在的数据库的访问权限的!
   253各位达人了!

解决方案 »

  1.   

    首先,SQL Server 装在那个盘下与数据库访问没什么关系
    其次,你看一下这张表(taxi)是不是正确导入到要导入的数据库中,是不是导到其它数据库中去了?
    以上正确,那就不应该存在你所讲的问题
      

  2.   

    感谢楼上各位老大的回复。刚才的问题解决了,主要是我是拷我以前的程序来修改的,不小心把一个参数给删除了,检查到了就搞好了。
    但是现在又出现了新的问题,编译提示:[Microsoft][ODBC SQL Server Driver]超时已过期
    这是什么意思啊?   我是按照以前的程序来的,以前的程序都能很好的连接数据库的!
      

  3.   

    编译提示:[Microsoft][ODBC SQL Server Driver]超时已过期
    会有几种情况,
    第一:网络不通,不过你是单机访问,应该就不存在了,看看是不是sql的服务停了。
    第二:查询的数据太大,你需要把sql的timeout时间设置的长点。
      

  4.   

    检查一下connectionstring
    是不是server名称不对,就是sql server的实例名。连接超时一般是没找到已运行的服务器
      

  5.   

    connectionString肯定是好的。sql的服务也是启动了的。我的数据库表中的记录条数有点多,大概在百万的数量集。但是我把查询超时设定成0或者6000,都不行啊!都要提示超时,这是为什么了?
      

  6.   

    我把我的程序帖出来,各位老大给看看吧!
    servName = loginSer.servName.Text
    userName = loginSer.userName.Text
    userPwd = loginSer.userPwd.Text
    dbName = loginSer.dbName.Text
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Driver={SQL Server};Server=" & servName & ";UID=" & userName & ";PWD=" & userPwd & ";Database=" & dbName
    cn.OpenSet rst = New ADODB.Recordset
    TracksIDP = 17553334
    Set rst = cn.Execute("SELECT * FROM taxi where TracksID =" & TracksIDP)
    TracksIDP = TracksIDP + 1
    X1 = rst!lon
    Y1 = rst!lat
    我现在要做的事情就是从taxi表中取到经纬度,传给X1和Y1。我的select语句是取一条记录,TracksIDP加1以后就又可以取到下一条记录了。taxi表是一张关于出租车的gps定位表,数据的内容是在不断增加的。我知道内存对性能的影响很大,但是我想就算慢一点,总是能执行的噻!但是为什么却老是报超时错误了?
    假如像楼上老大说的那样,要把记录保证在千条以内,我该怎么做了?小弟是新手,真的很希望能获得各位高手的指导!
      

  7.   

    我把我的程序帖出来,各位老大给看看吧!
    servName = loginSer.servName.Text
    userName = loginSer.userName.Text
    userPwd = loginSer.userPwd.Text
    dbName = loginSer.dbName.Text
    Set cn = New ADODB.Connection
    cn.ConnectionString = "Driver={SQL Server};Server=" & servName & ";UID=" & userName & ";PWD=" & userPwd & ";Database=" & dbName
    cn.OpenSet rst = New ADODB.Recordset
    TracksIDP = 17553334
    Set rst = cn.Execute("SELECT * FROM taxi where TracksID =" & TracksIDP)
    TracksIDP = TracksIDP + 1
    X1 = rst!lon
    Y1 = rst!lat
    我现在要做的事情就是从taxi表中取到经纬度,传给X1和Y1。我的select语句是取一条记录,TracksIDP加1以后就又可以取到下一条记录了。taxi表是一张关于出租车的gps定位表,数据的内容是在不断增加的。我知道内存对性能的影响很大,但是我想就算慢一点,总是能执行的噻!但是为什么却老是报超时错误了?
    假如像楼上老大说的那样,要把记录保证在千条以内,我该怎么做了?小弟是新手,真的很希望能获得各位高手的指导!