我要在程序中动态的创建一个access数据库表,下面是我得代码。运行还没有成功。
我想问的是:(1)已经创建了ODBC数据源,然后把TQuery的databasename属性设为该数据源的名称,是不是就可以在这里面创建数据库表了?即,这样做可行吗?
(2)已经创建的数据库没有密码,但运行时却要求输入用户名和密码来登陆,否则就无法连接。出现异常,程序中断了。不知道怎么回事?
谢谢各位指教
我想问的是:(1)已经创建了ODBC数据源,然后把TQuery的databasename属性设为该数据源的名称,是不是就可以在这里面创建数据库表了?即,这样做可行吗?
(2)已经创建的数据库没有密码,但运行时却要求输入用户名和密码来登陆,否则就无法连接。出现异常,程序中断了。不知道怎么回事?
谢谢各位指教
var
table1:TQuery;
tablename:string;
begin
try
tablename:=inputbox('班级','请在这里输入班级名称','');
table1:=TQuery.Create(self);
with table1 do
begin
databasename:='database';
with sql do
begin
clear;
add('creat table');
add(tablename);
add('(num int,id int,name char(10),ins char(50),cls char(50),sum int)'); end;
ExecSQL;
sql.Clear;
sql.Add('creat index 学号索引 on');
sql.Add(tablename);
sql.Add('(id)');
execsql; end;
except
MessageDlg('创建数据库表失败',mtWarning,[mbOk], 0);
end;
{以上代码动态的创建一个数据库表,表的名称为该班的名称,为从excel导入数据做准备}end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBTables, DB, Grids, DBGrids;type
TForm1 = class(TForm)
Button1: TButton;
Database1: TDatabase;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
Query1: TQuery;
tablename: string;
begin
try
tablename:=inputbox('班级','请在这里输入班级名称');
Query1 := TQuery.Create(Application);
Query1.DatabaseName := 'dm1';
if database1.Connected=false then
database1.Connected;
with Query1 do
begin
SQL.Text := 'create table ' + tablename + ' (num int,id int,name char(10),ins char(50),cls char(50),sum int)';
ExecSQL;
SQL.Clear;
sql.Add('create index 学号索引 on');
sql.Add(tablename);
sql.Add('(id)');
execsql;
DataSource1.DataSet:=Query1;
Query1.SQL.Text:='SELECT * FROM '+tableName;
Query1.Open;
end;
except
MessageDlg('创建数据库表失败', mtWarning, [mbOk], 0);
end;end;end.
而且你的代码中的create 写成creat 不应该呀!
但是我想按Smallmaker说的那样去掉登陆窗口,不知道在哪儿设置,我把那个语句写在了代码中,但是运行会出错。
还有,每次运行完后,运行的工程文件就会死掉,不响应(已经完成任务,创建了新表)。强制关掉后,就不能运行第二次了。关掉重新打开才行。请问,这样的异常怎么处理。
我初学delphi,见笑了。
如果还有什么问题的话,你可以将你的源程序(数据库)一块发给我,保证给你解决!
[email protected]