64 bit to 32 bit linked server problems

Answered 64 bit to 32 bit linked server problems

  • Monday, May 07, 2012 12:33 PM
     
     

    I have a sql2008 r2 64 but computer trying to update a 32 bit sql2000 machine

    I tried a multi-row update and got the error message

    Msg 682, Level 22, State 148, Line 1
    Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption.

    I saw that while multi-row updates crash with this error message, a single row update should work. I converted the update to a cursor and now I get the following error message. 

    OLE DB provider "SQLNCLI10" for linked server "xxx" returned message "Bookmark is invalid.".
    Msg 7333, Level 16, State 2, Line 1
    Cannot fetch a row using a bookmark from OLE DB provider "SQLNCLI10" for linked server "xxx".

    the update stmt is like:

    update y

    set col=x.value

    from sql2008.table x inner join sql2000.table y

    on x.val=y.val collate <collasion>


    ???

All Replies

  • Monday, May 07, 2012 12:56 PM
    Answerer
     
     
    See if the below helps you...

    OLE DB provider "SQLNCLI" for linked server "MySQLServer7" returned message "Unspecified error".
    OLE DB provider "SQLNCLI" for linked server "MySQLServer7" returned message "The stored procedure required to complete this operation could not be found on the server. Please contact your system administrator.".
    Msg 7311, Level 16, State 2, Line 9
    Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI" for linked 


    Marek’s solution is to create a wrapper on the master database as follows (his code not mine):

    create procedure sp_tables_info_rowset_64
          @table_name sysname, 
          @table_schema     sysname = null,   
          @table_type nvarchar(255) = null 

    as

    declare @Result int set @Result = 0
    exec @Result = sp_tables_info_rowset @table_name, @table_schema, @table_type

    Best Regards, Uri Dimant SQL Server MVP http://dimantdatabasesolutions.blogspot.com/ http://sqlblog.com/blogs/uri_dimant/

  • Monday, May 07, 2012 1:34 PM
     
     
    already did that. we are on the next set of errors as I posted above 

    ???

  • Monday, May 07, 2012 3:14 PM
     
     

    Following links seems to be having a similar scenario as yours, please review:

    Internal error. Buffer provided to read column value is too small. Run DBCC CHECKDB to check for any corruption

    One of the causes of this error is improper indexes usage.

  • Tuesday, May 08, 2012 6:18 AM
     
     
    it seems to be the same problem except that we have an sql2000 machine, so I can't install the sp specified which might fix the problem

    ???

  • Tuesday, May 08, 2012 6:57 AM
     
     Answered

    instead of pushing the update from the 2008 machine, I pulled it from the 2000 machine and it works fine.

    since I was planning on running a nightly job, this is sufficient for me. if you need more frequent updates, I'd suggest writing the changes to a table and having a job running every minute pull the changes over marking those processed.

    berli1


    ???

    • Marked As Answer by berli Tuesday, May 08, 2012 6:57 AM
    •