1、data\*.dbf要导入mybase.mdb中,且表的格式和数据不能有变化。
2、特别是Access表中的字段属性“允许空字符”该如何设置。
3、要用代码实现。
2、特别是Access表中的字段属性“允许空字符”该如何设置。
3、要用代码实现。
解决方案 »
- 关于二值化的问题(有关位深度)
- 如何控制另一窗体的控件?
- 请问:如何用最好的方法将一个字符串里所有的整数都找出来,存入一个数组?
- 学好了软件开发,以后转做系统管理维护或网管等工作是不是易如反掌?在线等待!!!急啊!
- 怎样取得某个文件后缀对应的图标
- 新手上路:三层结构中客户端根据参数从服务器端动态获得数据问题,诚心请教,可能问题很菜,见笑了!
- 在Delphi中如何获得计算机上网卡的MAC地址。
- 请教如何删除文件
- 谢谢zx_wang(wzx)了,能运行了,你能告诉我你的联系方法吗?
- 数据库模糊查询问题
- procedure SetMon(str:integer;str1:integer = str);申明不正确????
- 一个可笑的问题。
“允许空字符”就是在创建字段是使用 null 即可,如
create table REG_Log (
ID int identity,
CID varchar(8) not null,
LogTime datetime null,
LogType char(8) null,
LogInfo varchar(200) null,
constraint PK_REG_LOG primary key (ID)
)
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.clear;
adoquery1.SQL.Add('select * into newtable from hjck in ('c:\temp''dbase5.0;'));
adoquery1.Open;
end;end.newtable为access中的表,hjck为dbase表。
adoquery1连接newtable所在的数据库。
for xh1:=0 to B_Dataset.FieldCount-1 do //B_Dataset:源表数据集控件
begin
G_String:=G_String+F_GetField(B_Dataset,xh1,1)
if xh1<B_Dataset.FieldCount-1 then G_String:=G_string+',';
end;
Command.Commandtext:=G_String; //Command:连接目的表的AdoCommand控件下面的函数并不完整,可自己查看datatype(fieldtype)的相关帮助。Function F_GetField(B_DataSet:TDataSet;B_Zdh:integer;B_Mz:integer=0):String;
//根据给出的字段号返回该字段的Sql字串,数据表为Set_Ora,字段号从0开始计.B_Mz为0时返回字段名,1时返回字段值
begin
With B_DataSet do
if B_Mz=0 then Result:=fields[B_Zdh].FieldName
else
begin
if (Fields[B_Zdh].DataType =ftWideString) or (Fields[B_zdh].DataType =ftString) then
begin
Result:=iif(fields[B_Zdh].asstring='','null',''''+Fields[B_Zdh].asstring+'''');
exit;
end;
if Fields[B_Zdh].DataType = ftFloat then
begin
Result:=iif(fields[B_Zdh].asstring='','null',floatToStrF(Fields[B_Zdh].AsFloat,ffFixed,11,2));
exit;
end;
if (Fields[B_Zdh].DataType = FtSmallInt) or (Fields[B_Zdh].DataType =ftInteger)
or (Fields[B_Zdh].DataType=FtBCD) then
begin
Result:=iif(fields[B_Zdh].asstring='','null',fields[B_Zdh].AsString);
exit;
end;
if Fields[B_Zdh].DataType=ftDate then
begin
Result:=iif(Fields[B_Zdh].asstring='','null','#'+formatDateTime('yyyy-mm-dd',fields[B_Zdh].asDateTime)+'#');
exit;
end;
Result:=''; //尚需增加布尔等类型的判断.
end;
end;
这样的语句我没试过不知行不行,不过也可以做两个连接然后再把。DBF的数据赋给ACCESS,如果要加一些条件可加上一些IF语句,如:
Dataset1.field[1].value:=Dataset2.field[1].value
指定数据源和接受的数据集就行了;
第一种方法完全不能用.
第二种方法我没试.
也许我没说清楚,我需要根据源表动态创建新表.to zgheng(光头)
batchmove控件的接收数据集不能连接ado控件啊.