07-02-2020, 01:43 PM
(This post was last modified: 07-02-2020, 01:45 PM by SorenJensen.)
(07-02-2020, 10:11 AM)or Mikael Nilsson Wrote:(07-02-2020, 09:54 AM)Alexandre Machado Wrote: Is there a control attached to a TField? If so, which control class is this?
No
This is the code in error
procedure TfrmUserDetail.DbToForm;
var
i:Integer;
begin
inpUID.Text:= AnsiLowerCase(UserSession.FDQryUsersMod.FieldByName('UserID').AsString);
inpEnamn.Text:= UserSession.FDQryUsersMod.FieldByName('Enamn').AsString;
inpFnamn.Text:= UserSession.FDQryUsersMod.FieldByName('Fnamn').AsString;
inpTel.Text:= UserSession.FDQryUsersMod.FieldByName('Tel').AsString;
inpFax.Text:= UserSession.FDQryUsersMod.FieldByName('Fax').AsString;
inpEmail.Text:= UserSession.FDQryUsersMod.FieldByName('Email').AsString;
inpuPw.Text:= UserSession.FDQryUsersMod.FieldByName('PW').AsString;
if (UserSession.FDQryUsersMod.FieldByName('Funktion').AsString = 'A') then begin
inpFunction.ItemIndex:=0;
end
else begin
inpFunction.ItemIndex:=1;
end;
lblCD.Caption:='Last change date: ' + UserSession.FDQryUsersMod.FieldByName('AndDat').AsString;
inpMob.Text:=UserSession.FDQryUsersMod.FieldByName('Mobnr').AsString;
cbxeConnectivity.Checked:=UserSession.FDQryUsersMod.FieldByName('WWDAUTH_eConnectivity').AsBoolean;
cbxCompany.Checked:=UserSession.FDQryUsersMod.FieldByName('WWDAUTH_Company').AsBoolean;
cbxTestUser.Checked:=UserSession.FDQryUsersMod.FieldByName('TestUser').AsBoolean;
cbxCompanyAdmin.Checked:=UserSession.FDQryUsersMod.FieldByName('CompanyAdmin').AsBoolean;
end;
Sorry wrong procedure.
This was the one in error
procedure TfrmUserDetail.FormToDb;
var
ExpPeriod:Integer;
aDatePwe: TDateTime;
begin
if (UserSession.UserMode = 0) then begin { Insert }
ExpPeriod:=StrToInt(UserSession.ReadProfileValue('SYSTEM', 'PW', 'PWEXPPER', '0')); {Expiration period in days }
aDatePwe:=incDay(Now,ExpPeriod);
UserSession.FDQryUsersMod.Insert;
UserSession.FDQryUsersMod.FieldByName('UserID').AsString := AnsiUppercase(inpUID.Text);
UserSession.FDQryUsersMod.FieldByName('PartID').AsInteger := UserSession.UsersSelectedPartId;
UserSession.FDQryUsersMod.FieldByName('Uppldat').AsString := FormatDateTime('c',now);
UserSession.FDQryUsersMod.FieldByName('PwStatus').AsString := '0'; { Normal }
UserSession.FDQryUsersMod.FieldByName('PwExpirationDate').AsString := FormatDateTime('yyyy-mm-dd',aDatePwe);
UserSession.FDQryUsersMod.FieldByName('PwChangeDate').Clear;
end
else begin
UserSession.FDQryUsersMod.Edit;
if (UserSession.SysUser) then begin { Allowed to move a user from one part to another }
UserSession.FDQryUsersMod.FieldByName('PartID').AsInteger := StrToInt(inpCompany.Items.ValueFromIndex[inpCompany.ItemIndex]);
end;
end;
UserSession.FDQryUsersMod.FieldByName('Enamn').AsString := inpEnamn.Text;
UserSession.FDQryUsersMod.FieldByName('Fnamn').AsString := inpFnamn.Text;
UserSession.FDQryUsersMod.FieldByName('Tel').AsString := inpTel.Text;
UserSession.FDQryUsersMod.FieldByName('Fax').AsString := inpFax.Text;
UserSession.FDQryUsersMod.FieldByName('Email').AsString := AnsiLowerCase(inpEmail.Text);
UserSession.FDQryUsersMod.FieldByName('PW').AsString := inpuPw.Text;
UserSession.FDQryUsersMod.FieldByName('Funktion').AsString := inpFunction.Items.ValueFromIndex[inpFunction.ItemIndex];
UserSession.FDQryUsersMod.FieldByName('Anddat').AsString := FormatDateTime('c',now);
UserSession.FDQryUsersMod.FieldByName('Mobnr').AsString := inpMob.Text;
UserSession.FDQryUsersMod.FieldByName('WWDAUTH_eConnectivity').AsBoolean := False;
UserSession.FDQryUsersMod.FieldByName('WWDAUTH_eConnectivity').AsBoolean := cbxeConnectivity.Checked;
UserSession.FDQryUsersMod.FieldByName('WWDAUTH_Company').AsBoolean := False;
UserSession.FDQryUsersMod.FieldByName('WWDAUTH_Company').AsBoolean := cbxCompany.Checked;
UserSession.FDQryUsersMod.FieldByName('TestUser').AsBoolean := False;
UserSession.FDQryUsersMod.FieldByName('TestUser').AsBoolean := cbxTestUser.Checked;
UserSession.FDQryUsersMod.FieldByName('CompanyAdmin').AsBoolean := False;
UserSession.FDQryUsersMod.FieldByName('CompanyAdmin').AsBoolean := cbxCompanyAdmin.Checked;
end;
To me it appears as if you are trying to add a date or datetime value to a DB field (eg. UserSession.FDQryUsersMod.FieldByName('Uppldat').AsString := FormatDateTime('c',now); ).
You are using .AsString in the assignment, converting the value to a string. Is the field you are trying to fill, a string (varchar) or date / Datetime (smalldate) ? If it is a date, you cannot assign a datevalue as a string. The assign will try to add the text '2020-12-29', including the hyphens, to a datetime field. Thus the error.
Use .AsDate or AsDateTime instead and do not convert value to a text.
Regards
Soren

