Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 22

Тема: Работа с MySQL с новой прошивкой.

  1. #11

    По умолчанию

    Через пример команда выполнилась, корректный ответ получен.
    Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.

  2. #12

    По умолчанию

    Цитата Сообщение от oif Посмотреть сообщение
    Через пример команда выполнилась, корректный ответ получен.
    Осталось понять,что не так,когда копирую функцию в проект и запускаю ее в проекте.
    Как я понял, вы пишете на языке ST - вероятно, некорректно производите вызов ФБ.
    Выложите ваш проект - тогда можно будет понять, в чем проблема.

  3. #13

    По умолчанию

    Да на 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;

  4. #14

    По умолчанию

    Выложите проект - а то сейчас, например, всё равно непонятно, что такое SQLstartread и где оно объявлено.

  5. #15

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Выложите проект - а то сейчас, например, всё равно непонятно, что такое SQLstartread и где оно объявлено.
    Хорошо,переписал пример на ST. Подставляю в него параметры своего сервера, не работает.
    Беру оригинальный пример на CFC ставлю параметры сервера своего, все работает.
    Не понимаю, почему.
    Подскажите, что не так делаю.
    Вложения Вложения

  6. #16

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    а с чего вдруг стали ненужны пробелы между ключом и именем, такие как пользователь и пароль
    Все значения переменные вроде получают,корректно.Вы думаете в этом проблема? Я попробую завтра,но что-то никогда не обращал на это внимание.

  7. #17

    По умолчанию

    Пример корректного кода на ST:

    Код:
    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
    2021-05-18_7-00-23.png

  8. #18

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Пример корректного кода на ST:

    Код:
    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
    2021-05-18_7-00-23.png
    Евгений, спасибо большое!
    Понял ошибку свою!

  9. #19

    По умолчанию

    Примерно аналогичная ситуация

    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.

  10. #20

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. БД MYSQL
    от Holm в разделе СПК210, СПК1xx [М01]
    Ответов: 2
    Последнее сообщение: 17.05.2021, 09:55
  2. Работа с MySQL
    от electronic в разделе Master SCADA 3
    Ответов: 36
    Последнее сообщение: 11.10.2013, 10:06
  3. Работа с MySQL
    от Александер2008 в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 18.02.2012, 18:30
  4. Ответов: 11
    Последнее сообщение: 06.07.2010, 14:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •