Запись и чтение БД MS SQL

Запись и чтение БД MS SQL

Сообщение WWnoob » Чт мар 01, 2018 2:53 pm

Доброго времени суток ! Начинаю разбираться с работой с БД MS SQL, нужно срочно решить задачу записи значения тегов по закрытию приложения и чтения последней записанной ячейки при старте приложения. Не могу правильно составить запрос к БД ни в тот ни в другом случае.

Описание задачи : записать в последнюю строку значение тегов, я написал такой скрипт:
Объявление переменных }
DIM ErrorCode AS INTEGER;

{Подключение к БД}
ErrorCode = SQLConnect( SQL_Connect_ID, "DSN=Report;DB=Report;UID=sa;PWD=sa;" );

LogMessage("ErrCOde: " + StringFromIntg( ErrorCode, 10));
{Запись нарастающих значений расхода воды в БД SQL}
IF ErrorCode == 0 THEN
SQL_Data = Text( $Year , "0000") + "." + Text( $Month , "00") + "." + Text( $Day , "00") + " " + Text( $Hour , "00") + ":00:00" ;
SQL_NA2_QA_water = NA2_QA_water;
SQL_NA3_QA_water = NA3_QA_water;
SQL_NA4_QA_water = NA4_QA_water;
SQLInsert( SQL_Connect_ID, "DSNname", "DBname" );
ENDIF;
{ Отключение от БД }
SQLDisconnect( SQL_Connect_ID);

Вроде работает, но не уверен на 100%

В чем я уверен на 100%, так это в том, что не работает чтение последней записи этих значений, которое описано в скрипте OnStartUp:
{Подключение к БД}
ErrorCode_r = SQLConnect( SQLr_Connect_ID, "DSN=Report;DB=Report;UID=sa;PWD=sa" );
IF ErrorCode_r <> 0 THEN SQLr_Rep010 = "Нет связи с базой данных" ; ENDIF ;

IF ErrorCode_r == 0 THEN
ErrorCode = SQLConnect( SQL_Connect_ID, "DSN=Report;DB=Report;UID=sa;PWD=Albatros;" );
ENDIF; {ErrorCode_r == 0}
LastRow = SQLLast(SQLr_Connect_ID );{Получение номера последней строки}
SQLSelect( SQLr_Connect_ID, "Report", "ReportRead", "LastRow", "NA2_QA_water" ); {Выбираю нужную ячейку}
NA2_QA_water=SQLFirst(SQLr_Connect_ID); {Читаю значение ячейки в тег}
SQLSelect( SQLr_Connect_ID, "Report", "ReportRead", "LastRow", "NA3_QA_water" ); {Выбираю нужную ячейку}
NA3_QA_water=SQLFirst(SQLr_Connect_ID); {Читаю значение ячейки в тег}
SQLSelect( SQLr_Connect_ID, "Report", "ReportRead", "LastRow", "NA4_QA_water" ); {Выбираю нужную ячейку}
NA4_QA_water=SQLFirst(SQLr_Connect_ID); {Читаю значение ячейки в тег}
LogMessage(StringFromIntg( NA2_QA_water, 10)); {смотрю в логе результат чтения и плАчу}
LogMessage(StringFromIntg( LastRow , 10));
{ Отключение от БД }
SQLDisconnect( SQLr_Connect_ID);

Биндлист ReportRead заполнены верно.

Помогите пожалуйста правильно составить запросы к БД.
WWnoob
 
Сообщения: 2
Зарегистрирован: Чт мар 01, 2018 2:37 pm

Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5