tempad
Readygo技术搜索引擎 >>PHP技术 >> 高分求教-如何建立数据库(用代码)

高分求教-如何建立数据库(用代码)

Readygo技术搜索引擎 网络搜索 efish 2008-1-14 16:11:50

高分求教-如何建立数据库(用代码)

楼主knife001(风之刀)2002-07-20 10:39:07 在 Delphi / 数据库相关 提问

如何用代码建立数据库 问题点数:100、回复次数:4Top

1 楼yctwfly(西风狂想)回复于 2002-07-20 10:41:55 得分 100

用OLEDB.4.0,创建ACCESS数据库,但用OLEDB.3.51就会出错,并提示     "不能使用,文件正在使用中     ",请问应该怎样创建ACCESS97的数据库,并同时建表。      
  下面的程序能同时创建ACCESS2000的数据库和数据表:      
  procedure     TForm5.RzCreateBtnClick(Sender:     TObject);      
  var      
        AppPath,tablename,x,y,z,str,sqlstr:string;      
        CreateAccess,NewTable,CUM:Variant;      
  begin      
                tablename:=DateTimeToStr(Now);      
                x:=copy(tablename,17,2);      
                y:=copy(tablename,20,2);      
                z:=copy(tablename,23,2);      
                tablename:="库"+copy(tablename,1,10)+"-"+x+y+z;      
                AppPath:=ExtractFileDir(Application.ExeName);      
                CreateAccess:=CreateOleObject("ADOX.Catalog");      
                CreateAccess.Create("Provider=Microsoft.Jet.OLEDB.3.51;Data     Source="+AppPath+"\"+tablename+".mdb");      
                showmessage("数据库创建成功!");      
     
                ADOQuery1.ConnectionString:="";      
                ADOQuery1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.3.51;Persist     Security     Info=False;Data     Source="+AppPath+"\"+Tablename+".mdb";      
                ADOQuery1.Close;      
                tablename:=DateTimeToStr(Now);      
                x:=copy(tablename,17,2);      
                y:=copy(tablename,20,2);      
                z:=copy(tablename,23,2);      
                tablename:="表"+x+y+z;      
                sqlstr:="Create     Table     ";      
                sqlstr:=sqlstr+tablename+"     (ID     int     NOT     NULL,Name     varchar(50)     NOT     NULL,Type     varchar(50)     NULL,";      
                sqlstr:=sqlstr+"length     int     NULL,CFormula     text     NULL,EFormula     text     NULL,Bvalue     varchar(50)     NULL";      
                sqlstr:=sqlstr+",Nodetype     varchar(50)     NULL,Parent     int     NULL,sort     int     NULL,Visible     bit,SB     bit,Readonly     bit)";      
                With     ADOQuery1     Do      
                Begin      
                        Close;      
                        SQl.Clear;      
                        SQl.add(sqlstr);      
                        ExecSQL;      
                End;      
  end;      
  ---------------------------------------------------------------      
     
  uses     ComObj;      
     
  function     CreateDatabase(mDatabaseName:     string):     Boolean;      
  var      
        CreateAccess:     OLEVariant;      
  begin      
        Result     :=     False;      
        try      
                CreateAccess     :=     CreateOleObject("ADOX.Catalog");      
                try      
                        CreateAccess.Create(Format(      
  "Provider=Microsoft.Jet.OLEDB.3.51;Data     Source=%s%s.mdb",      
                        ));      
                finally      
                        CreateAccess     :=     Unassigned;      
                end;      
        except      
                Exit;      
        end;      
        Result     :=     True;      
  end;      
     
  function     CreateTable(mDatabaseName:     string;     mADOQuery:     TADOQuery):     Boolean;      
  begin      
        Result     :=     False;      
        try      
                mADOQuery.Close;      
                mADOQuery.ConnectionString     :=     Format(      
  "Provider=Microsoft.Jet.OLEDB.3.51;Data     Source=%s%s.mdb",      
                        );      
                mADOQuery.SQL.Text     :=     "CREATE     TABLE     Table1     (Field1     varchar(10),     Field2     varchar(10))";      
                mADOQuery.ExecSQL;      
        except      
                Exit;      
        end;      
        Result     :=     True;      
  end;      
     
  procedure     TForm1.Button1Click(Sender:     TObject);      
  begin      
        DeleteFile(ExtractFilePath(Application.ExeName)     +     "test.mdb");      
        CreateDatabase("test");      
        CreateTable("test",     ADOQuery1);      
  end;      
   
  (转录)请收索以前的旧贴  
  Top

2 楼knife001(风之刀)回复于 2002-07-20 10:43:20 得分 0

谢谢!Top

3 楼zxd_2000(潜龙勿用)回复于 2002-07-20 10:46:36 得分 0

有些复杂了,给我个邮箱,我将我以前的代码发给你。不过是用ADO组建实现的Top

责任编辑: efish 参与评论 查找更多:
相关文章
注销的问题,各位高手请看一看! 注销的问题,各位高手请看一看!
深圳那些公司有做视频的? 深圳那些公司有做视频的?
谁能说说CTI的市场前景? 谁能说说CTI的市场前景?
大家帮我看看这个问题,谢谢了。很简单的! 大家帮我看看这个问题,谢谢了。很简单的!
急急急!!!!这句sql什么意思? 急急急!!!!这句sql什么意思?
OA的市场前景怎么样,现在它的应用怎么样? OA的市场前景怎么样,现在它的应用怎么样?
微软件试题,快来看看吧! 微软件试题,快来看看吧!
几个问题,请高手指教,每个20分,还有,怎么送分啊… 几个问题,请高手指教,每个20分,还有,怎么送分啊,是不是自动就给回答问题的人加了?
如何实现常用软件的”另存为“这项功能,指定存储路… 如何实现常用软件的”另存为“这项功能,指定存储路径,输入文件名,文件就复制到别的目录下了
有关QQ代理的问题 有关QQ代理的问题
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎