8.х --- MySQL RecordCount ---

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем o_O, 13 дек 2010.

  1. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    Товарищи гуру, прошу помощи.

    Код:
    Процедура ПОДКЛЮЧЕНИЕ() Export
    SERVER = Строка("127.0.0.1");
    DRIVER = Строка("MySQL ODBC 3.51 Driver") ;
    //DRIVER = Строка("MySQL ODBC 5.1 Driver") ;
    BASE = Строка("db01") ;
    USER = Строка("root") ;
    PASS = Строка("12345");
    CODE = "set character_set_results=cp1251";
    СОЕДИНЕНИЕ = Строка("DRIVER=" + DRIVER + ";SERVER=" + SERVER + ";DataBase="+BASE + ";UID="+USER+";PWD="+PASS+";STMT=" + CODE + ";");
    Попытка
    КОННЕКТ = Новый COMОбъект("ADODB.Connection");
    КОННЕКТ.Open(СОЕДИНЕНИЕ);
    СОЕД =1;
    Состояние("Соединение с MySQL установлено!");
    Исключение
    Сообщить("--------------------------------------------------------------------------");
    Сообщить("			!!! Не удалось подключиться к MySQL !!!");
    Сообщить(ОписаниеОшибки());
    Сообщить("--------------------------------------------------------------------------");
    СОЕД =0;
    КонецПопытки;
    КонецПроцедуры
    
    
    Далее пытаюсь получить кол-во записей, удовлетворяющих требованию. Следующие варианты не работают:

    1)
    Код:
    НаборЗаписей=КОННЕКТ.Execute("SELECT * FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+"'");
    КолВоЗаписей = НаборЗаписей.RecCount();
    
    2) похож на 3)
    Код:
    НаборЗаписей=КОННЕКТ.Execute("SELECT * FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+"'");
    КолвоЗаписей = КОННЕКТ.Execute("SELECT count(*) from (SELECT * FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+")");
    
    3) похож на 2) - можно не смотреть! ошибка только другая вылазит.
    Код:
    НаборЗаписей=КОННЕКТ.Execute("SELECT * FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+"'");
    КолвоЗаписей = КОННЕКТ.Execute("SELECT count(*) from ("+НаборЗаписей+")");
    
    4)
    Код:
    НаборЗаписей=КОННЕКТ.Execute("SELECT * FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+"'");
    КолВоЗаписей = НаборЗаписей.RecordCount; // постоянно возвращает: -1
    
    
    5) При нулевом количестве записей цикл "зацикливается"

    Код:
    Пока НаборЗаписей.EOF()=False Цикл
    КолВоЗаписей = КолВоЗаписей+1;
    КонецЦикла;
    
    Как же всё-таки осуществить НаборЗаписей.Количество() ???

    спасибо!
  2. TopicStarter Overlay
    o_O
    Offline

    o_O Опытный в 1С

    Регистрация:
    18 июн 2010
    Сообщения:
    234
    Симпатии:
    0
    Баллы:
    26
    6) постоянно возвращает: ложь
    Код:
    КОННЕКТ.Execute("SELECT COUNT(*) FROM `db01`.`group` WHERE `code` = '"+Group[индех].Товар+"' AND `parent` = '"+Group[индех].родитель+"'");
    
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вот эту обработку посмотрите. Возможно там будет какая-то информация для вас. http://infostart.ru/public/19463/
  4. AlexFF
    Offline

    AlexFF Разбирающийся

    Регистрация:
    6 мар 2007
    Сообщения:
    565
    Симпатии:
    1
    Баллы:
    26
    Код:
        
    RS = ADODB.Execute(......);
    
    Пока RS.EOF() = 0 Цикл
    
    // ......
    
    RS.MoveNext();
    
    КонецЦикла;    
    
    
    
Похожие темы
  1. tjv
    Ответов:
    0
    Просмотров:
    672
  2. mongolor
    Ответов:
    4
    Просмотров:
    1.530
  3. oleg_01
    Ответов:
    2
    Просмотров:
    466
  4. Darth_Ixis
    Ответов:
    2
    Просмотров:
    488
Загрузка...

Поделиться этой страницей