bueno el truco ke les cometo es para recibir datos por medio del puerto serial, les dejo el codigo, con este codigo puedo leer y almacenar lo que leo en mi bd, todo corre perfectamente cuando lo ejecuto desde delphi, pero al ejecutarlo desde el .exe no me lee el puerto, gracias. utilizo delphi 10
Código SQL
[-]
procedure TForm1.BitBtn2Click(Sender: TObject);
var
puerto,n: integer;
num:byte;
cad: string;
mode: DCB;
com: string;
begin
com:= edit1.Text;
label3.Caption:=com;
compa:=true;
puerto:= FileOpen(com,fmOpenRead);
mode.BaudRate:=9600;
mode.ByteSize:=8;
mode.Parity:=NOPARITY;
mode.StopBits:= ONESTOPBIT;
SetCommState(puerto,mode);
while compa=true do begin
Application.ProcessMessages;
repeat
repeat until FileRead(puerto,num,1)=1;
until num=13 ;
cad:= '';
for n:=1 to 46 do begin
repeat until FileRead(puerto,num,1)=1;
cad:= cad + chr(num);
end;
//alamcenamieno de datos en la BD
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into datos(medidor,fecha,hora,gasto,tirante,tem)');
query1.SQL.Add('values(:med,:fec,:ho,:gas,:tir,:te)');
query1.ParamByName('med').Value:=COPY(cad,1,3);
query1.ParamByName('fec').Value:=COPY(cad,5,10);
query1.ParamByName('ho').Value:=COPY(cad,16,5);
query1.ParamByName('gas').Value:=COPY(cad,22,7);
query1.ParamByName('tir').Value:=COPY(cad,30,8);
query1.ParamByName('te').Value:=COPY(cad,39,8);
query1.ExecSQL;
memo1.Lines.Add(cad);
if compa=false then
break;
end;
end;