
23.11.2015, 00:57
|
Прохожий
|
|
Регистрация: 17.10.2015
Сообщения: 11
Версия Delphi: RAD Studio XE7
Репутация: 10
|
|
Проблема с заполнением таблицы
Суть проблемы в этой ошибке
Я не могу понять, зачем он пытается конвертировать в Double, ведь я не где его это не прошу делать. В таблице тоже ни где не используется Double.Ниже код программы...
Код:
unit Unit4;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls,
Vcl.Grids, Vcl.DBGrids, Data.DB, Data.Win.ADODB;
type
TForm4 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
ADOQuery2: TADOQuery;
DBGrid2: TDBGrid;
DataSource1: TDataSource;
DataSource2: TDataSource;
Edit1: TEdit;
ADOConnection1: TADOConnection;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
i,sum:integer;
s:real;
implementation
{$R *.dfm}
uses Unit1, Unit2, Unit3;
procedure TForm4.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Form2.DBGrid1.DataSource.DataSet.First;
S := 0;
while not Form2.DBGrid1.DataSource.DataSet.Eof do begin
S := S + Form2.DBGrid1.DataSource.DataSet.FieldByName('обед').Value;
Form2.DBGrid1.DataSource.DataSet.Next;
end;
Form2.DBGrid1.DataSource.DataSet.First;
S := 0;
while not Form2.DBGrid1.DataSource.DataSet.Eof do begin
S := S + Form2.DBGrid1.DataSource.DataSet.FieldByName('завтрак').Value;
Form2.DBGrid1.DataSource.DataSet.Next;
end;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('SELECT * FROM Продукты');
ADOQuery2.Active:=true;
while not DBGrid2.DataSource.DataSet.Eof do begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('INSERT INTO на_заказ(код_продукта,подкод_продукта,наименование_продукта,количество) VALUES('+ DBGrid2.DataSource.DataSet.FieldByName('код').Value +'","' + DBGrid2.DataSource.DataSet.FieldByName('подкод').Value + '","' + DBGrid2.DataSource.DataSet.FieldByName('название').Value + '","' + DBGrid2.DataSource.DataSet.FieldByName('грамм_на_порцию').Value + '")');
ADOQuery1.ExecSQL;
DBGrid2.DataSource.DataSet.Next;
end;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM на_заказ');
ADOQuery1.Active:=True;
end;
end.
|