delphi 数据库编程创建数据表,表名可以是变量吗?这个变量应该怎么表示阿。谢谢
1个回答
展开全部
以前Foxbase、VFP。。。等中的宏替换能实现你的要求,但在Delphi中则不行。 如果是SQL Server数据库的话,你可以在存储过程中创建数据表。存储过程中用EXEC(<字符串>)来执行SQL命令。<字符串>部分就是一条SQL命令。给你看个我写的例子:
-------------------------------------------------------------------------
Create Proc mark @ScoreDB varchar(255)
as
exec(
'insert into OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+@ScoreDB+'"'')...成绩表(准考证号,姓名,班级,选择,判断,填空)
select
a.准考证号,b.姓名,b.班级,
选择题=sum(case when a.答题结果=a.标准答案 and a.试题类别=1 then 1 else 0 end),
判断题=sum(case when a.答题结果=a.标准答案 and a.试题类别=2 then 1 else 0 end),
填空题=sum(case when a.答题结果=a.标准答案 and a.试题类别=3 then 1 else 0 end)
from 试卷表 a
inner join 考生信息 b on a.准考证号=b.准考证号
group by a.准考证号,b.姓名,b.班级')
这个存储过程中,包含了一个变量:@ScoreDB,在Delphi中调用此存储过程时,可以动态给出。
-------------------------------------------------------------------------
Create Proc mark @ScoreDB varchar(255)
as
exec(
'insert into OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+@ScoreDB+'"'')...成绩表(准考证号,姓名,班级,选择,判断,填空)
select
a.准考证号,b.姓名,b.班级,
选择题=sum(case when a.答题结果=a.标准答案 and a.试题类别=1 then 1 else 0 end),
判断题=sum(case when a.答题结果=a.标准答案 and a.试题类别=2 then 1 else 0 end),
填空题=sum(case when a.答题结果=a.标准答案 and a.试题类别=3 then 1 else 0 end)
from 试卷表 a
inner join 考生信息 b on a.准考证号=b.准考证号
group by a.准考证号,b.姓名,b.班级')
这个存储过程中,包含了一个变量:@ScoreDB,在Delphi中调用此存储过程时,可以动态给出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询