Модераторы: stron
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема 1С и FireBird, Проблема доступа в баде FireBird из 1С 7 
:(
    Опции темы
SaschaL
Дата 20.2.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Господа программеры, есть вопрос.

Есть программа стороннего разработчика, база этой программы крутится на СУБД FireBird. Возможно ли программно подключиться к базе данных СУБД FireBird, если возможно, может кто подскажет как это сделать, может кто уже сталкивался в такой ситуацией.

Заранее благодарю всех кто ответит!
PM MAIL ICQ   Вверх
Itsys
Дата 20.2.2008, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 7
Всего: 34



Есть внешняя компонента для работы с ODBC - а через нее и подключайся

Добавлено через 9 минут и 40 секунд
Вот например
PM MAIL WWW Skype   Вверх
SaschaL
Дата 20.2.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Спасибо за ответ попробую, правда все мои преждние попытки подцепиться через ODBC ни к чему не привели, в то время как Майкрософтский сервер нормально конектится!
Завтра попробую, поделюсь результатами!
PM MAIL ICQ   Вверх
Ch0bits
Дата 21.2.2008, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 1
Всего: 62



А через ADO тоже не получается?
PM WWW   Вверх
AkelaSQL
Дата 22.2.2008, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 14.9.2007
Где: Москва

Репутация: 6
Всего: 7



Вот мой пример рабочего кода для 8-ки, если нужно, могу выложить для 7-ки, но там я использую компоненту 1С++

Код


Соединение = Новый COMОбъект("ADODB.Connection");
//DSN=FireBird;Driver={Firebird/InterBase(r) driver};Dbname=23-Video01:c:\Program Files\smdr-  2\db\smdrkey.fdb;CHARSET=NONE;PWD=000111;UID=ALEX;Client=gds32.dll

Соединение.ConnectionString = "DSN=FireBird;Driver={Firebird/InterBase(r) driver};Dbname=" +
    СокрЛП(Объект.ИмяСервера) + ":" + 
    СокрЛП(Объект.ИмяБазыДанных) + ";CHARSET=NONE;Uid=" +
    СокрЛП(Объект.ИмяПользователя) + ";Pwd=" + 
    СокрЛП(Объект.Пароль) + ";Client=gds32.dll";

Соединение.ConnectionTimeout = 60;
Соединение.CursorLocation = 3;
//Состояние("Попытка соединения с " + СокрЛП(Объект.ИмяСервера) + "...");
            
            Попытка
                Соединение.Open();
                //Состояние("Читаю данные с " + СокрЛП(Объект.ИмяСервера) + "...");
            Исключение
                Сообщить(ОписаниеОшибки());
            КонецПопытки;
            
            ТекстЗапроса = "
            |Select
            |CARD as KodKart,
            |substr(upper(DT_EVENT), 1, 10) as datasub,
            |substr(upper(min(DT_EVENT)), 12, 19) as vhod,
            |substr(upper(max(DT_EVENT)), 12, 19) as vihod
            |from ARCH_SMDREVENT
            |where ((MARK = 0) or (MARK is null))
            |and CARD <> '0000000000000000'
            |group by CARD, substr(upper(DT_EVENT), 1, 10)
            |order by CARD
            |";

        Попытка
            // Выборка данных и перебор результата запроса 
            ВыборкаСтрокС = Соединение.Execute(ТекстЗапроса); 
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;




--------------------
user posted image
PM MAIL ICQ   Вверх
SaschaL
Дата 22.2.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Спасибо! Буду признателен если выложите пример кода для 1с 7.7
PM MAIL ICQ   Вверх
AkelaSQL
Дата 22.2.2008, 13:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 14.9.2007
Где: Москва

Репутация: 6
Всего: 7



Пример рабочего кода для 1С77 с использованием компоненты 1С++:

Код


Процедура Connect(Database,ServerName,Login,Password,ТипБД)
    
    Если ТипБД = Перечисление.ВидыБаз.SQL Тогда
        Состояние("Соединение с SQL Server...");
        ИдентСоедин = SQLServer.Соединение("Description=" + СокрЛП(Database) + ";DRIVER=SQL Server;SERVER=" + СокрЛП(ServerName) + ";UID=" + СокрЛП(Login) + ";PWD=" + СокрЛП(Password) + ";");
        //SQLServer.Соединение(Description=Database;DRIVER=SQL Server;SERVER=ServerName;UID=Login;PWD=Password;APP=ViewODBC Application;WSID=PROG2;Network=DBMSSOCN);
    Иначе  
        Состояние("Соединение с FireBird Server...");
        ИдентСоедин = SQLServer.Соединение("DSN=FireBird;Driver=Firebird/InterBase(r) driver;Dbname=" + СокрЛП(ServerName) + ":" + СокрЛП(Database) + ";CHARSET=NONE;PWD=" + СокрЛП(Password) + ";UID=" + СокрЛП(Login) + ";Client=gds32.dll;");
    КонецЕсли;
    
    Если ИдентСоедин = 0 Тогда
        Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой 
        Сообщить(Строка(Error), "!!!");
        СтатусВозврата(0);
        Возврат;
    Иначе
        Состояние("Соединились, однако... :)");
    КонецЕсли;
    
КонецПроцедуры //Connect
//*******************************************
Процедура Disconnect()
    Попытка
        SQLServer.Закрыть();
    Исключение
        Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой 
        Сообщить(ОписаниеОшибки() + РазделительСтрок + Строка(Error), "!!!");
        СтатусВозврата(0);
        Возврат;
    КонецПопытки;
    
КонецПроцедуры //Disconnect
//*******************************************

    Попытка
        // Создаем объект SQLServer
        SQLServer = СоздатьОбъект("ODBCDatabase");
        SQLServer.УстЗначениеТаймаута(10); // свойство определяет, то число секунд, которое мы будем пытается подключиться
        SQLServer.УстЗначениеТаймаутаЛогина(10); // свойство определяет, то число секунд, которое мы будем пытается подключиться
        БазаОмега = СоздатьОбъект("ODBCRecordSet");
    Исключение 
        Error = SQLServer.ПолучитьОписаниеОшибки(); // свойство управляет выводом ошибкой 
        Сообщить(ОписаниеОшибки() + РазделительСтрок + Строка(Error), "!!!");
        СтатусВозврата(0);
        Возврат;    
    КонецПопытки; 
    
        Connect(СокрЛП(БазаУРВ.БазаДанных),СокрЛП(БазаУРВ.Сервер),СокрЛП(БазаУРВ.Пользователь),СокрЛП(БазаУРВ.Пароль),БазаУРВ.ТипБазы);
        БазаОмега.УстБД(SQLServer);
        
        Если БазаУРВ.ТипБазы = Перечисление.ВидыБаз.SQL Тогда
            ТекстЗапроса = "
            |Select
            |KodKart,
            |convert(char(8), min(DataTime), 8) as vhod,
            |convert(char(8), max(DataTime), 8) as vihod
            |from " + СокрЛП(БазаУРВ.БазаДанных) + ".dbo.MyTemp
            |where DataTime >= '" + АмДата(Строка(ДатаДок)) + "'
            |and DataTime < '" + АмДата(Строка(ДатаДок+1)) + "'
            |group by KodKart
            |order by KodKart
            |";
        Иначе
            ТекстЗапроса = "
            |Select
            |CARD as KodKart,
            |substr(upper(min(DT_EVENT)), 12, 19) as vhod,
            |substr(upper(max(DT_EVENT)), 12, 19) as vihod
            |from ARCH_SMDREVENT
            |where DT_EVENT >= '" + АмДата(Строка(ДатаДок)) + "'
            |and DT_EVENT < '" + АмДата(Строка(ДатаДок+1)) + "'
            |and CARD <> '0000000000000000'
            |group by CARD
            |order by CARD
            |";
        КонецЕсли;
        
        //БазаОмега.Отладка(1);
        БазаОмега.Открыть(ТекстЗапроса);
        ТЗ_QueryResults = СоздатьОбъект("ТаблицаЗначений");
        БазаОмега.ПолучитьРезультатыВ_ТЗ(ТЗ_QueryResults,1);

            Disconnect();




--------------------
user posted image
PM MAIL ICQ   Вверх
SaschaL
Дата 22.2.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Спасибо за пример попробую написать под свою конфигурацию.
PM MAIL ICQ   Вверх
prefer
Дата 25.3.2008, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



приподниму чуток..
Скажите пожалуйста SaschaL, какие впечатления от 1с++ & firebird... 
Мне нужно писать из 7.7 в фаербёрд, какие могут быть подводные камни... заранее спс...
PM MAIL   Вверх
SaschaL
Дата 25.3.2008, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 880
Регистрация: 13.12.2006
Где: Челябинская обл г .Нязепетровcк

Репутация: 8
Всего: 9



Добрый день, prefer! 
Если честно но 1С++ я только начал заниматься, просто работа по загрузке данных FireBird-а отодвинута пока на второй план.
Так что более вразумительного я вам сказать в данное время не могу, но подцепиться и загрузить нужные данные с FireBird-а у меня получилось, а по поводу занесения данных на сам FireBird-а у меня такой задачи не было, но думается что она тоже решаема, главное с сознанием дела к этому подойти.. smile 
PM MAIL ICQ   Вверх
prefer
Дата 25.3.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.12.2007

Репутация: нет
Всего: нет



Бобрый день) SaschaL, спс... а лучше через ADO! имхо) и ВК не нужны...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "1C: Предприятие, SAP, ERP и учётные системы"
stron

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, stron, Pegas.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема »


 




[ Время генерации скрипта: 0.1208 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.