Через пример команда выполнилась, корректный ответ получен.
Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.
Вид для печати
Через пример команда выполнилась, корректный ответ получен.
Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.
Да на 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 и где оно объявлено.
а с чего вдруг стали ненужны пробелы между ключом и именем, такие как пользователь и пароль
Пример корректного кода на ST:
Вложение 55146Код: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