Имя: Пароль:
1C
1С v8
Turbosms - сложности в получении значение с mysql
,
0 Roma1314704
 
10.02.18
17:19
Приветствую
Прикрутил к 8.3 turbosms - сервис отправки смс
Все соединяется, смс отправляет но есть непонятная проблема с получением значения с поля balance. В выполнении ниже указаной функции не получается получить именно посленее значение  - показывает только предыдущее (сравниваю с балансом в ЛК сервиса)
    
    СтрокаСоединение = "DRIVER={MySQL ODBC 3.51 Driver};
    |SERVER="+Сервер+";
    |DataBase="+БазаДанных+";
    |charset="+Кодировка+";
    |UID="+Логин+";
    |PWD="+Пароль+"";
    
    Попытка
    Соединение.Open(СтрокаСоединение);
        Сообщить("Связь с базой данных установлена");
            Исключение
        Сообщить("Не могу подключиться к базе!!!");
        Сообщить(описаниеошибки());
        Возврат Ложь;
    КонецПопытки;
    
    //RecordSet = Новый COMОбъект("ADODB.RecordSet");
    Команда = Новый COMОбъект("ADODB.Command");
    Команда.ActiveConnection = Соединение;
    RecordSet = Новый COMОбъект("ADODB.RecordSet");
    //RecordSet.CursorType = 3;
    RecordSet.Open("select balance from mylogin", Соединение, 3);

    Если не RecordSet.EOF() Тогда
    RecordSet.MoveLast();
    
        
    Баланс = RecordSet.Fields("balance").Value;
    Сообщить(Баланс);
    
    КонецЕсли;
    
     RecordSet.Close();
        
    Возврат Баланс ;

КонецФункции
1 glebgleb
 
10.02.18
17:57
Все правильно. В каком порядке было запрошено, в таком и получается.
2 Roma1314704
 
10.02.18
18:01
Тогда ничего не могу понять  - вызываю метод переместиться на последнуюю запись  - но по факту не получаю последнее значение.
3 glebgleb
 
10.02.18
18:05
(2) У тебя ложное представление о том, что записи за тебя кто-то отсортировал. SQL отдает записи в удобном ему сейчас порядке.
Так что все правильно: ты просишь несортированные записи - получаешь несортрованные записи. А потом героически там что-то ищещь.
4 Roma1314704
 
10.02.18
18:07
Ок, как отсортировать?
5 vde69
 
10.02.18
18:12
(4) в запрос добавить 3 слова
6 vde69
 
10.02.18
18:13
что-то вроде

   RecordSet.Open("select balance from mylogin sort by balnce", Соединение, 3);


хотя за синтаксис не ручаюсь
7 glebgleb
 
10.02.18
18:14
(6) И получит он максимальный баланс (:

А как называется поле даты в этой таблице - пусть сам разбирается.
8 Roma1314704
 
10.02.18
18:46
Проверил синтаксис точно не правильный. А сортировка по возра
. Или убыванию ? Может нужно сортировать по дате?
9 Roma1314704
 
10.02.18
18:46
В смысле как задать сортировку возраст или убывание?
10 glebgleb
 
10.02.18
18:55
11 Roma1314704
 
11.02.18
09:51
Спасибо, сделал сортировку при выборке в mysql - все пролучилось