问一下做计算机串口实现除了用API函数外,用DELPHI中哪个控件可以很好的实现呢?最好用ADO某个控件实现。 这是API函数编的好多啊: (1)、创建串口句柄并初始化串口, 代码如下: if uppercase(com)='COM1' then lc_com:='COM1' else lc_com:='COM2'; //创建串口句柄并初始化串口 ck_handle:=createfile(lc_com,Generic_Read+Generic_Write,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0); if ck_handle=INVALID_HANDLE_VALUE then begin result:=false; exit; end; setupcomm(ck_handle,2048,2048); //初始化串口DCB getcommstate(ck_handle,ls_dcb); ls_dcb.BaudRate:=9600; ls_dcb.StopBits:=onestopbit; ls_dcb.ByteSize:=8; ls_dcb.Parity:=evenparity; //设置串口DCB if not setcommstate(ck_handle,ls_dcb) then begin result:=false; exit; end; //设置串口超时 ls_timeout.ReadIntervalTimeout:=0; ls_timeout.ReadTotalTimeoutMultiplier:=0; ls_timeout.ReadTotalTimeoutConstant:=100; if not setcommtimeouts(ck_handle,ls_timeout) then begin result:=false; exit; end;(2)、从串口中读出数据,程序代码如下 : if readfile(ck_handle,kzm,readnum,readmod,nil) then lb_result:=true else lb_result:=false; (3)、从串口发送数据,程序代码如下: writefile(ck_handle,kzm,ilen,bytewrite,nil);
将loginprompt属性设置为false
params这样设置:
点击params右边的...按钮进入界面点“Code Editor”
然后:
user nanme=username
password=pass
就ok了
用BDE就是加DataBase来设置用户名和密码。
用ADO的话就是在设置ADOconnection的ConnectionString里设置。
LoginPrompt属性设置为False
LoginPrompt属性设置为False
Database1.Connected:=False;
Database1.Params.Values['USERNAME']:=用户名;
Database1.Params.Values['PASSWORD']:=密码;
Database1.LoginPrompt:=False;
Database1.DatabaseName:=数据库名;
TABLE或QUERY在程序中控制连接
一切OK!
LoginPrompt属性设置为False
LoginPrompt属性设置为False
直接用ADO多好的。
給分
为什么不用ado,直接设一下connectionstring就万事大吉了
这是API函数编的好多啊:
(1)、创建串口句柄并初始化串口, 代码如下:
if uppercase(com)='COM1' then
lc_com:='COM1'
else
lc_com:='COM2'; //创建串口句柄并初始化串口
ck_handle:=createfile(lc_com,Generic_Read+Generic_Write,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
if ck_handle=INVALID_HANDLE_VALUE then
begin
result:=false;
exit;
end;
setupcomm(ck_handle,2048,2048); //初始化串口DCB
getcommstate(ck_handle,ls_dcb);
ls_dcb.BaudRate:=9600;
ls_dcb.StopBits:=onestopbit;
ls_dcb.ByteSize:=8;
ls_dcb.Parity:=evenparity; //设置串口DCB
if not setcommstate(ck_handle,ls_dcb) then
begin
result:=false;
exit;
end;
//设置串口超时
ls_timeout.ReadIntervalTimeout:=0;
ls_timeout.ReadTotalTimeoutMultiplier:=0;
ls_timeout.ReadTotalTimeoutConstant:=100;
if not setcommtimeouts(ck_handle,ls_timeout) then
begin
result:=false;
exit;
end;(2)、从串口中读出数据,程序代码如下 :
if readfile(ck_handle,kzm,readnum,readmod,nil) then
lb_result:=true
else
lb_result:=false;
(3)、从串口发送数据,程序代码如下:
writefile(ck_handle,kzm,ilen,bytewrite,nil);
Invalid configuration parameter.
Alias:me
(me是我为数据库指定的别名)
大家帮我看看是怎么回事,谢谢~