Помогите пожалуйста адаптировать скрипт
var
ADOConnection: TADOConnection;
ADOQuery: TADOQuery;
ConnectionString: string;
VALUE_Y_tm:string;
VALUE_X_tm:string;
DT_XY:String;
tmptxt:String;
procedure Replace(var str, OldPattern, NewPattern: string);
var
ind: integer;
begin
ind := Pos(OldPattern, str);
if ind = 0 then
exit;
str[ind] := NewPattern;
end;
procedure OnStartScript;
begin
CoInitialize(nil);
ADOConnection := TADOConnection.Create(nil);
ADOQuery := TADOQuery.Create(nil);
end;
procedure OnStopScript;
begin
CoUninitialize;
ADOConnection.free;
ADOQuery.free;
end;
begin
try
ADOConnection.Connected := false;
ADOQuery.Active := false;
ADOConnection.ConnectionString := 'Provider=DIAR;Persist Security Info=True;User ID=sa;Password=Wth,th006;Initial Catalog=MonitoringStudio.MonitoringClient;Data Source=S702IS-SMIS\SQLEXPRESS;';
ADOQuery.Connection := ADOConnection;
VALUE_Y_tm:= floatToStr(ReadValue('VALUE_Y')); Replace(VALUE_Y_tm ,',','.');
VALUE_X_tm:= floatToStr(ReadValue('VALUE_X')); Replace(VALUE_X_tm ,',','.');
DT_XY:=FormatDateTime('yyyy-mm-dd hh:nn:ss', now);
Replace(DT_XY ,' ','T');
tmptxt:=Format('insert into Value_01(VALUE_Y, TIME_XY, VALUE_X) values (%s, ''%s'', %s)', [VALUE_Y_tm, DT_XY, VALUE_X_tm]);
ADOQuery.SQL.Text:= tmptxt;
ADOQuery.Active:=true;
finally
end;
end.
к записи в таблицу
USE [MonitoringStudio.MonitoringClient]
GO
/****** Object: Table [dbo].[DataExchange] Script Date: 28.03.2018 11:19:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DataExchange](
[Id] [int] IDENTITY(1,1) NOT NULL,
[TagValue] [float] NOT NULL,
[TagName] [nvarchar](50) NOT NULL,
[Timestamp] [datetime] NOT NULL,
CONSTRAINT [PK_DataExchange] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[DataExchange] ADD CONSTRAINT [DF__DataExcha__Times__0425A276] DEFAULT (getdate()) FOR [Timestamp]
GO
значение TagName можно задать в скрипте
мой вариант спотыкается на строке --- procedure Replace(var str, OldPattern, NewPattern: string);
пишет - Строка:13 Ошибка: ';' expected
но я ничего не менял в этом месте
var
ADOConnection: TADOConnection;
ADOQuery: TADOQuery;
ConnectionString: string;
VALUE_Y_tm:string;
VALUE_X_tm:string;
DT_XY:String;
TagName_Y_tm:String;
TagName_X_tm:String;
tmptxt_X:String;
tmptxt_Y:String
procedure Replace(var str, OldPattern, NewPattern: string);
var
ind: integer;
begin
ind := Pos(OldPattern, str);
if ind = 0 then
exit;
str[ind] := NewPattern;
end;
procedure OnStartScript;
begin
CoInitialize(nil);
ADOConnection := TADOConnection.Create(nil);
ADOQuery := TADOQuery.Create(nil);
end;
procedure OnStopScript;
begin
CoUninitialize;
ADOConnection.free;
ADOQuery.free;
end;
begin
try
ADOConnection.Connected := false;
ADOQuery.Active := false;
ADOConnection.ConnectionString := 'Provider=DIAR;Persist Security Info=True;User ID=sa;Password=Wth,th006;Initial Catalog=MonitoringStudio.MonitoringClient;Data Source=S702IS-SMIS\SQLEXPRESS;';
ADOQuery.Connection := ADOConnection;
TagName_Y_tm:= 'Èí_29_Y' ;
TagName_X_tm:= 'Èí_29_X' ;
VALUE_Y_tm:= floatToStr(ReadValue('VALUE_Y')); Replace(VALUE_Y_tm ,',','.');
VALUE_X_tm:= floatToStr(ReadValue('VALUE_X')); Replace(VALUE_X_tm ,',','.');
DT_XY:=FormatDateTime('yyyy-mm-dd hh:nn:ss', now);
Replace(DT_XY ,' ','T');
tmptxt_X:=Format('insert into DataExchange(TagValue, TagName, Timestamp) values (%s, ''%s'', %s)', [VALUE_X_tm, TagName_X_tm, DT_XY]);
tmptxt_Y:=Format('insert into DataExchange(TagValue, TagName, Timestamp) values (%s, ''%s'', %s)', [VALUE_Y_tm, TagName_Y_tm, DT_XY]);
ADOQuery.SQL.Text:= tmptxt_X;
ADOQuery.SQL.Text:= tmptxt_Y;
ADOQuery.Active:=true;
finally
end;
end.