当前位置:主页>销售管理软件> 列表

access 问题 找用友财务管理软件

仓库管理软件版1楼: 1、用ADOQUERY创建一个表。先检索CS表是否存在,如果存在删除。
2、用ADOQUERY的查询怎么得到结果。比如SUM(CS1)的结果。

2楼: 1.1
drop table [CS]

1.2
CREATE TABLE [CS] (
[EmployeeID] [int] IDENTITY (1, 1) NOT NULL ,
[LastName] [nvarchar] (20) NOT NULL ,
[FirstName] [nvarchar] (10) NOT NULL
)

2.1
SQL 检索语句
select Sum(CS1) as SumCS1 from CS
程序中这样读取数据
ADOQUERY.FindField(''SumCS1'').AsFloat 如家庭财务管理软件

3楼: drop table [CS] 是删除没有错误拉
那查询呢?

4楼: 那怎么判断表是否存在呢?

5楼: 什么查询?

6楼: 楼主想问的是不是说 ACCESS里有无 sysobjects 这样的一种系统表对吧?

if exists (select * from dbo.sysobjects where id = object_id(N''[dbo].[bos_rptT]'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1)
drop table [dbo].[bos_rptT]

仓库管理软件版7楼: 有问题你的代码

8楼: 那怎么判断表是否存在呢?

9楼: ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(''Create Table TableName'');
Try
ADOQuery.ExecSQL;
Except
On E:EOLEException Do
ShowMessage(''此表已存在!'')
End;

10楼: 有错误啊
Undeclared identifier:''EOLEEXCEPTION''

11楼: 基本思路:adoConnection设置联接到指定数据库,然后用GetTableNames方法获取表名字符串列表,检测列表中是否存在目标表名,最后删除.
function tbExists(s:String):Boolean;
var sl:TStringList;
begin
sl:=TstringList.create;
adoConnection.GetTableNames(sl);
if s.indexof(s)>-1 then
Result:=True
else
Result:=False;
end;

12楼: 我看不明白
555555555 如用友财务管理软件

13楼: 你的是DELPHI6.0版吧?那就把EOLEException换 成EDBEngineError,或者什么都不要:
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(''Create Table TableName'');
Try
ADOQuery.ExecSQL;
Except
ShowMessage(''此表已存在!'')
End;

仓库管理软件版14楼: 对于ACCESS,直接使用,这个是你的例子,你改改就可以了。


function TDM.FindTableExists(vid: string): Boolean;
var
CaseTable,ContentTable,SpotTable:String;
AList:TStringList;
begin
CaseTable:=''Case''+vid;
ContentTable:=''Content''+vid;
SpotTable:=''Spot''+vid;
AList:=TStringList.Create;
AdoBase.GetTableNames(AList);
Result:=False;
if (AList.IndexOf(CaseTable)>=0) and (AList.IndexOf(ContentTable)>=0) and
(AList.IndexOf(SpotTable)>=0) then
Result:=True;
end;
对于SQL SERVER,
查询系统表,看有无这个对象
select * from dbo.sysobjects
where type=''''u'''' and name=??你的表名称。

15楼: 那就把EOLEException换 成EDBEngineError:
换了还是报错。 不写会弹出错误对话框。