如何在三层结构中Creatre Table(Oracle 表和索引)(100分)

  • 主题发起人 主题发起人 yan
  • 开始时间 开始时间
Y

yan

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层结构中的客户端,Creatre Table(服务器是Oracle)的
具体语法应如何写?
 
这种情况在客户端只需发出命令,具体的建表操作在中间件上实现即可。
对Oracle表,用SQL建表最好。
 
能给个例子吗,我用Datarequest('Create Table
ATable (AA CHAR(10)))');得到如下提示:"DDL
statement can not be live",请指教.
 
实现方法:
Server端创建一个远程方法,
方法名为:ExecSQLState
参数为SQLState:WideString;
function xxxx.ExecSQLState(SQLState:WideString):Boolean;safecall;
begin
with Query1do
begin
Close;
SQL.Text:=SQLState;
//SQL语句
try
ExecSQL;
//执行
Result:=True;
//成功
except
Result:=False;
//失败
end;
end;
end;

Client端调用
RemoteServer.AppServer.ExecSQLState('Create.....')

你的错误:
DDL statement can not be live
意思是说数据定义语言(DDL)不能为活动,
也就是说重建表的SQL语句是不返回活动数据集的。
你是否将TQuery.RequestLive设置为True,
而且是用Open方法?
Open方法在执行SQL语句后会试图取得返回的数据集,
TQuery.RequestLive为True时会取活动数据集
应该直接用ExecSQL,只执行SQL语句;
 
感谢,已经搞定.
 
后退
顶部