首先判断库test是否存在,如果不存在则建立此库,然后判断该库下是否有表math,如果没有则建立此表,请问这应该如何去操作。
解决方案 »
- 怎么让一个文本框实现联想
- 模块的疑问
- 在三层中怎么样用ADOStoredProc把执行存储过程的的返回值送到前台?
- char类型值的范围是多少?
- 寻求synEdit语法高亮控件
- 征求算法: 判断 (3, 5, 11, 6, ..) 与 (6, 3, 5, 11, ) 等效?
- 如何将ADO记录集转变成一个(多个)DBF数据文件?
- 一个小问题!!!!!(有难度)
- dxDBGrid控件高分求教!!!!
- 哪位大哥用过fastreport4得 Endless page height这个设置,能说一下他的用途,支持中文报表有已知的bug吗?
- FastReport做报表,如何实现打印DBGrid中选中的数据行。
- 如何在DELPHI中还原覆盖已有的数据库?
drop table [dbo].[USER_INFO]
GOCREATE TABLE [dbo].[USER_INFO] (
[U_ID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[U_NAME] [char] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[U_SEX] [char] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[U_BIRTHDAY] [datetime] NOT NULL ,
[U_NO] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[U_PWD] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
[U_TEL] [char] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[IF_SYS] [bit] NULL ,
[IF_PASS] [bit] NULL
) ON [PRIMARY]
GO建立database ASQL:='select * from master.dbo.sysdatabases where name='+QuotedStr(ADatabase);
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(ASQL);
ADOQuery1.Open;
if ADOQuery1.RecordCount=1 then
Begin
ASQL:='create database '+ADatabase;
ADOQuery1.Active:=False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(ASQL);
ADOQuery1.ExecSQL;
End
首先在SqlServer中生成创建Test表的脚本(系统自动判断该表是否存在),
然后在Delphi中调用该脚本即可。
(
pub_id char(4) NOT NULL
CONSTRAINT UPKCL_pubind PRIMARY KEY CLUSTERED
CHECK (pub_id IN ('1389', '0736', '0877', '1622', '1756')
OR pub_id LIKE '99[0-9][0-9]'),
pub_name varchar(40) NULL,
city varchar(20) NULL,
state char(2) NULL,
country varchar(30) NULL
DEFAULT('USA')
)
ADOQuery,Query中执行!
例如:
with adoquery do
begin
close;
sql.clear;
sql.text:='此处放入楼上的建库代码';
ExecSQL;
end;
2、你应该先在程序中执行一段ODBC配置程序,配置成master 库后,用它来联接数据库;
如: SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=test'+ chr(0) +
'Server=(local)'+ chr(0) +'Database=master'+ chr(0) +
'Description=test SQLServer ODBC Source'+chr(0));
3、用楼上的代码建一个初始库;
如:CREATE DATABASE test......
4、配置ODBC 至test
如: SQLConfigDataSource(0, ODBC_ADD_SYS_DSN,'SQL Server','DSN=test'+ chr(0) +
'Server=(local)'+ chr(0) +'Database=test'+ chr(0) +
'Description=test SQLServer ODBC Source'+chr(0));5、在程序中运行数据库脚本,以便生成实用库
如var
FilePath:string;//文件路径
siStartupInfo:STARTUPINFO;
saProcess,saThread:SECURITY_ATTRIBUTES;
fSuccess:boolean;
piProcInfoGPS:PROCESS_INFORMATION;
begin
FilePath:=extractfilepath(application.ExeName)+'test.sql';
filepath:='osql /U '+SQLName+' /P '+SQLpassword+' /d '+' test /i '+Filepath;
winexec(pchar(FilePath),SW_HIDE);
ZeroMemory(@siStartupInfo,sizeof(siStartupInfo));
siStartupInfo.cb:=sizeof(siStartupInfo);
siStartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
siStartupInfo.wShowWindow:=SW_HIDE;
saProcess.nLength:=sizeof(saProcess);
saProcess.lpSecurityDescriptor:=PChar(nil);
saProcess.bInheritHandle:=true;
saThread.nLength:=sizeof(saThread);
saThread.lpSecurityDescriptor:=PChar(nil);
saThread.bInheritHandle:=true;
fSuccess:=CreateProcess(PChar(nil), //指向一个以空结尾的串,他指定了要执行的模块
pchar(filepath), //指向一个以空结尾的串,该串定义了要执行的命令行
@saProcess,
@saThread,
false,
CREATE_DEFAULT_ERROR_MODE,
Pchar(nil),
Pchar(nil),
siStartupInfo,
piProcInfoGPS);
end;
cmd:='create database 库名';
adoQuery2.SQL.Clear;
adoQuery2.SQL.Add(Cmd);
adoQuery2.execsql;建表:
cmd:='create table 表名(a int,b int)';
adoQuery2.SQL.Clear;
adoQuery2.SQL.Add(Cmd);
adoQuery2.execsql;
企业管理器-->右键你的数据库-->所有任务-->生成SQL脚本-->选项-->所有对象-->OKs:string;
sqlfile:textfile;AssignFile(sqlfile, 'update.sql');
Reset(sqlfile);
while not eof(sqlfile) do
begin
Readln(sqlfile, s);
sqltext:=s;
while (not eof(sqlfile)) and (uppercase(trim(s))<>'GO') do
begin
Readln(sqlfile, s);
if (uppercase(trim(s))<>'GO') then
sqltext:=sqltext+' '+s;
end;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sqltext);
adoquery1.ExecSQL;
end;
CloseFile(sqlfile);application.MessageBox('数据库升级完成!','提示',MB_OK+MB_ICONINFORMATION);//注:上述代码要求update.sql文件中语句无注释
SQL SERVER 2000 安装全攻略2(卸载重装要点)
SQL SERVER 2000 创建数据库和数据表
SQL SERVER 2000 与SQL Explorer的连接
数据库事务处理全攻略
数据库锁的概述
dbexpress连接SQL SERVER数据库的方法
dbexpress+SQL server制作主从关系