由于数据库的 RESTORE DATABASE 无法在异地还原,所以我的思路是这样的,将数据库结构生成一个
SQL文件、一个数据文件(都是INSERT 语句)。然后在读出SQL语句用TADOQuery执行。结果碰到如下问题

1、文件中如果有GO语句TADOQuery.sql.LoadFromFile()进来后就会报语法错误。
2、由于数据库中有几个存储过程,用到了同名称的临时表,如果不分批(GO)执行的话那存储过程就无法创建。
3、由于上面原因我改用TMemo.Lines作为中介读入文件。用memo2.Lines[i]一句句读入语句,当碰到GO时在用TADOQuery执行语句。结果出现的问题是memo2.Lines[i]每行读入的字符好像是固定长度。当我的存储过程中有(--)注释语句时它会自动进行分段度入,这样执行创建存储过程是还是报语句错误。
4、当我用TADOQuery读入INSERT文件是,由于文件中有
insert into aaa values ('<"width:100%" ')这样的语句,所以执行语句时报无参数错误,但‘100%'只是数据表中的内容。碰到这类问题该怎么办?我以前用VB也这样做过,思路因该没什么问题.DELPHI用的少,许多问题不清楚。希望有高手能帮忙解惑!!!如果分不够可以再加!!!先谢谢了。

解决方案 »

  1.   

    把SQL的备份上传到SQL服务器,然后再还原
    自己写语句Insert不现实
      

  2.   

    把SQL的备份上传到SQL服务器需要开通共享,但数据库服务器一般不能共享。
    SQL的备份上传能不能不开共享上传呀?(谢谢)我已经作了个自动生成INSERT文件的工具。所以不麻烦。
    现在的问题是生成表结构时 TADOQuery在执行语句时出现1、2、3的问题。
    我以前用VB也是这样做的,没出现问题。DELPHI里就出现这些奇怪的问题,DELPHI不熟也不知道因该怎么做,请大家帮忙解决以下呀。谢谢!!!
      

  3.   

    jinjazz(近身剪(充电中...)) ( ) 信誉:130 
    dts导入有道理,能否给个DELPHI下的例子呀!!!
    谢过了先!!!!
      

  4.   

    baronyang(魔蝎) ( ) 信誉:94 
    即然是安装程序,楼主为什么不把数据库文件直接放在安装文件里呢数据库文件是直接放在安装文件下,关键是安装程序和数据库服务器不是在一台机子上。用备份还原行不通。postren(小虫) ( ) 信誉:117 
    不开共享,可以开ftp
    是否一定得让数据库服务器开共享?