1:在vb里怎样执行sql文件,如果用osql,isql 等命令,怎样在程序里判断出osql文件是否执行完毕,我在 vb里是用 shell osql ... 执行的,
2:在vb里能否有别的方法或对象执行.sql文件。
---------------------------------------------------------------
在执行osql时加上[-o output_file] 参数,执行完后查看这个文件的内容,判断是否执行及是否成功执行。
或用VB以文本文件方式打开.sql 文件,读入里面的SQL语句,并传递给MSSQL执行,判断执行结果当然也好办了。
---------------------------------------------------------------
你是生成大型数据库的的脚本,如果太大,你可以分段执行,先是CREATE DATABASE,在CREATE TABLE AND INDEX....,
不过给你一个建议,最好不要在VB中调用.SQL生成DATABASE,你可以用VB生成客户段,在写一段BAT文件手动CREATE DATABASE,
下面是我的一段脚本:
createdatabase.bat
@rem **************************************************************************
@rem Ensure usage.
@rem **************************************************************************
if [%1] == [] goto USAGE
if [%2] == [] goto USAGE
if [%3] == [] goto USAGE
if [%4] == [] goto USAGE
@rem **************************************************************************
@rem Database creation: devices, database, users, ...
@rem **************************************************************************
@echo **************************************************************************
@echo creating database...
@echo **************************************************************************
@isql -S %2 -U %4 -P %5 -d master -n -i %1\dbcreate.sql -o %1\dbcreate.out
@echo **************************************************************************
@echo initialising database...
@echo **************************************************************************
@isql -S %2 -U %4 -P %5 -d %3 -n -i %1\dbconfig.sql -o %1\dbconfig.out
@rem **************************************************************************
@rem End of processing.
@rem **************************************************************************
goto EXIT
@rem **************************************************************************
@rem Usage.
@rem **************************************************************************
:USAGE
@echo usage: database.bat db_path server_name database_name sa_user [sa_pswd]
@goto EXIT
@rem **************************************************************************
@rem Exit point.
@rem ****************************************************************