Вот такой код написал при компеляции ошибок не выдает.
unit yadro;
interface
uses
System.SysUtils,System.Types,System.UITypes,System.Classes,System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,IdUDPClient,IdBaseComponent,IdComponent,IdUDPBase,IdUDPServer, FMX.StdCtrls, FMX.Edit,
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo,IdGlobal,IdSocketHandle,FireDAC.Stan.Intf,FireDAC.Stan.Option,FireDAC.Stan.Error,FireDAC.UI.Intf,FireDAC.Phys.Intf,FireDAC.Stan.Def,FireDAC.Phys,FireDAC.Stan.Pool,FireDAC.Stan.Async,FireDAC.Phys.MSAcc,FireDAC.Phys.MSAccDef,FireDAC.FMXUI.Wait,FireDAC.Stan.Param,FireDAC.DatS,FireDAC.DApt.Intf,FireDAC.DApt,System.Rtti, FMX.Grid.Style,Data.Bind.EngExt,Fmx.Bind.DBEngExt,Fmx.Bind.Grid,System.Bindings.Outputs,Fmx.Bind.Editors,Data.Bind.Components,Data.Bind.Grid,Data.Bind.DBScope, FMX.Grid,Data.DB,FireDAC.Comp.DataSet,FireDAC.Comp.Client;
type
TForm2=class(TForm)Memo1:TMemo;Button1:TButton;Edit1:TEdit;Label1:TLabel;IdUDPServer1:TIdUDPServer;Button2:TButton;Button3:TButton;Label2:TLabel;Timer1:TTimer;FDManager1:TFDManager;FDConnection1:TFDConnection;FDQuery1:TFDQuery;DataSource1:TDataSource;StringGrid1:TStringGrid;BindSourceDB1:TBindSourceDB;BindingsList1:TBindingsList;LinkGridToDataSourceBindSourceDB1:TLinkGridToDataSource;Button4:TButton;Button5:TButton;Button6:TButton;Button7:TButton;Label3:TLabel;Label4:TLabel;Edit2:TEdit;Edit3:TEdit;Edit4:TEdit;Edit5:TEdit;Edit6:TEdit;LinkControlToField1:TLinkControlToField;LinkControlToField2:TLinkControlToField;LinkControlToField3:TLinkControlToField;LinkControlToField4:TLinkControlToField;Timer2:TTimer;Label5:TLabel;
procedure IdUDPServer1UDPRead(AThread:TIdUDPListenerThread;constAData:TIdBytes;ABinding:TIdSocketHandle);
procedure Button2Click(Sender:TObject);
procedure Button3Click(Sender:TObject);
procedure Timer1Timer(Sender:TObject);
procedure Timer2Timer(Sender:TObject);
procedure Button4Click(Sender:TObject);
procedure Button5Click(Sender:TObject);
procedure Button6Click(Sender:TObject);
procedure Openstr();
procedure Closestr();
procedure Change();private{Private declarations }public{Public declarations }
end;
var
Form2:TForm2;
S:string;
s1,s2,s3:String;
d:integer;
SD:boolean;
implementation
{$R *.fmx}
procedure TForm2.Button2Click(Sender:TObject);
begin
Form2.IdUDPServer1.Active:=true;
end;
procedure TForm2.Button3Click(Sender:TObject);
begin
Form2.IdUDPServer1.Active:=false;
end;
procedure TForm2.Button4Click(Sender:TObject);
begin
FDQuery1.Insert;
end;
procedure TForm2.Button5Click(Sender:TObject);
begin
FDQuery1.Post;
end;
procedure TForm2.Button6Click(Sender:TObject);
begin
FDQuery1.Delete;
end;
procedure TForm2.Change;
begin
FDQuery1.DataSource.DataSet.Locate('Login',label3.Text,[lopartialkey]);if(label3.Text<>edit2.Text) then
SD:=trueelse
SD:=false;
end;
procedure TForm2.Closestr;
begin
FDQuery1.Post;
end;
procedure TForm2.IdUDPServer1UDPRead(AThread:TIdUDPListenerThread;constAData:TIdBytes;ABinding:TIdSocketHandle);
var
ss:TStringStream;//сохранять буквы будем тут
s,buff:String;//вспомогательные переменные
begin
ss:=TStringStream.create('');//создаем пустую строку
ss.write(adata[0],length(adata));//записываем в нее данные из потока байт
s:=ss.DataString;//преобразовываем ее в текст
ss:=TStringStream.create('');//создаем пустую строку
ss.write(adata[0],length(adata));//записываем в нее данные из потока байт
s:=ss.DataString;//преобразовываем ее в текстMemo1.Lines.Add(s);// если кракоз¤бры то пробуем Utf8ToAnsi и т д (но у мен¤ и так работает)
ss.free;//очищаем строку от мусора
S1:=s;
S2:=s;delete(S1,1,4);delete(S2,4,Length(S2));
label3.Text:=S1;
label4.Text:=S2;
end;
procedure TForm2.Openstr;
begin
FDQuery1.Insert;
end;
procedure TForm2.Timer1Timer(Sender:TObject);
begin
if form2.IdUDPServer1.Active=true then
begin
label2.Text:='Server On - port 8488';
end
else
label2.Text:='Server Off';
end;
procedure TForm2.Timer2Timer(Sender:TObject);
begin
if(label3.Text.Length<>0) and (label4.Text.Length<>0) then
Form2.Change;if SD=true then
begin
d:=strtoint(label4.Text);case d of
0:begin
FDQuery1.Insert;
label5.Text:=inttostr(d);
edit2.Text:=label3.Text;
label3.Text:='';
label4.Text:='';
end;100:begin
label5.Text:=inttostr(d);
edit3.Text:=label3.Text;
edit4.Text:='User';
label3.Text:='';
label4.Text:='';FDQuery1.Post;
end;
end;End;
end;
end.
при попытке сохранить в аксес выдает вот что:
подозеваю чтопроблема вот в этом кусочке
FDQuery1.DataSource.DataSet.Locate('Login',label3.Text,[lopartialkey]);if(label3.Text<>edit2.Text) then
Потому, что когда убираю проблема исчезает, но сохранение в базу данных не происходит по-прежнему. Появляется пустая строка и все.
Если пробовать писать руками в эдиты все норм сохраняет.
Вопрос
виталий Соловьёв
Вот такой код написал при компеляции ошибок не выдает.
при попытке сохранить в аксес выдает вот что:
подозеваю чтопроблема вот в этом кусочке
Потому, что когда убираю проблема исчезает, но сохранение в базу данных не происходит по-прежнему. Появляется пустая строка и все.
Если пробовать писать руками в эдиты все норм сохраняет.
Ссылка на комментарий
4 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.