字段类型转换(100分)

  • 主题发起人 主题发起人 zzsj
  • 开始时间 开始时间
Z

zzsj

Unregistered / Unconfirmed
GUEST, unregistred user!
我的数据库字段类型为整型,
我用了一个TDBCombobox控件,
控件的选项为字符型。
请问用什么方法来实现。
 
.asinteger 转换为整型
.asstring 转换为字符型
建立计算字段。
string1.Value:= int1.asstring;
int1.Value:=string1.asinteger,
任选一个。
 
very easy.
dbcombox1的items里加入你想要的输入的数据.
然后把dbcombox1的datasource1和datafield设好就行了,不需要做其它的
工作,在运行中程序会自动的把字符型数据换成整形数据.
这在我最近开发的一套系统中得到成功的应用
 
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Table1: TTable;
DBComboBox1: TDBComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
table1.Open;
table1.Post ;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
table1.Append;
end;
end.
注解:
Table1共有一个字段A,Type 为Integer;
dbcombobox1.Items[0]:='QingDao'; 对应字段A值为0;
dbcombobox1.Items[1]:='JianNan'; 对应字段A值为1;
请帮助调试;
 
DBComboBox的Items为String,无法与Table的Integer类型字段直接关联。
改用ComboBox:
Combobox1.Items[0]:='QingDao';
Combobox1.Items[1]:='JianNan';
事件处理如下:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Table1.Edit;
case ComboBox1.ItemIndex of
0: Table1.FieldByName('A').AsInteger:= 0;
1: Table1.FieldByName('A').AsInteger:= 1;
end;
end;

如果动态的将ComboBox1嵌入DBGrid网格中,会得到很好的效果。
有问题mail:caowei@ms.xjb.ac.cn
 
你还可以直接在sql中用convert()函数进行转换
 
太简单了吧
 
接受答案了.
 
后退
顶部