Через пример команда выполнилась, корректный ответ получен.
Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.
Через пример команда выполнилась, корректный ответ получен.
Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Да на ST.По сути я скопировал функциональный блок из примера, добавил его в Application. Подключил библиотеку CmpSysExec 3.5.16.30. Объявил переменные. И вызываю функцию по изменению SQLstartread на 1 вручную для проверки.
PROGRAM PLC_PRG
VAR
fbMySqlClient: MySQL_CLIENT;
xSendCommand: BOOL;
sUser: STRING(30) := 'owen';
sPassword: STRING(30) := '';
sIpAddr: STRING(30) := '1.1.1.1';
sDatabase: STRING(30) := 'example';
sSqlStatementread: STRING(255) := 'SELECT qtyinstock FROM vtiger_products WHERE productid = 15';
sSqlStatementwrite: STRING(255);
asResult: ARRAY [1..255] OF STRING(255);
usiCountOfStrings: USINT;
END_VAR
SQLstartread;
fbMySqlClient(xExecute:=SQLstartread,sUser:=sUser, sPassword:=sPassword,sipAddr:=sIpAddr,sDatabase:=s Database,sSqlStatement:=sSqlStatementread);
fbMySqlClient.asResult[1];
fbMySqlClient.xDone;
fbMySqlClient.xError;
fbMySqlClient.usiCountOfStrings;
fbMySqlClient.xBusy;
fbMySqlClient.xOverFlow;
Выложите проект - а то сейчас, например, всё равно непонятно, что такое SQLstartread и где оно объявлено.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Пример корректного кода на ST:
2021-05-18_7-00-23.pngКод:fbMySqlClient(xExecute:=xSendCommand,sUser:=sUser,sPassword:=sPassword,sipAddr:=sIpAddr,sDatabase:=sDatabase,sSqlStatement:=sSqlStatement); IF fbMySqlClient.xDone THEN asResult := fbMySqlClient.asResult; usiCountOfStrings := fbMySqlClient.usiCountOfStrings; END_IF
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Примерно аналогичная ситуация
sFinish31: STRING(255);
sProstoy: STRING(255):='INSERT INTO "titorovka_lowperformance31" ("startdata","starttime") VALUES ($'';
sString2: STRING(255):='$'::date,$'';
sString3: STRING(255):='$'::time';
sString4: STRING(255):=',$'';
sString5: STRING(255):='$',$'';
sString6: STRING(255):='$')';
sReturnId31: STRING(255):=') RETURNING "titorovka_lowperformance31"."id"';
sFinish31:= OSU.CONCAT8(
sProstoy,
dataTemp,
sString2,
timeTemp,
sString3,
sReturnId31,
);
fbPostgreSqlClientInsert31(
xExecute:=xStartInsert,
sUser:=sUser,
sPassword:=sPassword,
sIpAddr:=sIpAddr,
sDatabase:=sDatabase,
sSqlStatement:=sFinish31);
IF fbPostgreSqlClientInsert31.xDone THEN
//SQL_FORMAT(asData:=fbPostgreSqlClientInsert31.asRe sult,
// iStringCount:=fbPostgreSqlClientInsert31.usiCountO fStrings);
//awsResult31:=SQL_FORMAT.awsData;
xStartInsert:=FALSE;
если убрать RETURNING "titorovka_lowperformance31"."id"' то запись происходит но мне нужен id для следующих действий в CFC работает в ST нет не пойму в чем проблема. и при этом xDone всегда отрабатывает.
Запрос который не работает 'INSERT INTO "titorovka_lowperformance31" ("startdata","starttime") VALUES ('2024-7-26'::date,'15:33:22'::time) RETURNING "titorovka_lowperformance31"."id"'
Запрос который работает 'INSERT INTO "titorovka_lowperformance31" ("startdata","starttime") VALUES ('2024-7-26'::date,'15:33:22'::time)'
Последний раз редактировалось Teinrus; 26.07.2024 в 15:33.
Т. е. при использовании CFC запрос с RETURNING работает корректно?в CFC работает в ST нет
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk