Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) gdb (число прочтений - 6389 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
gdb
01. Марта 2011 :: 14:15
Печать  
привет всем! помогите прочитать файл *.GDB? получиться ли у меня подключиться с помощью 1с++ ?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: gdb
Ответ #1 - 01. Марта 2011 :: 15:28
Печать  
получиться. для этого надо:
- установить ODBC драйвер
- правильно составить строку подключения
подробности тут
  

1&&2&&3
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #2 - 01. Марта 2011 :: 18:40
Печать  
спасибо. на мисте правда есть вариант через bde. и есть внешняя компонента от romixa. я вот подумал, что проще ?
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #3 - 01. Марта 2011 :: 18:48
Печать  
да - и если стоит sql 2000 на машине, то пункт "установить ODBC драйвер" уже не нужен ?
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #4 - 01. Марта 2011 :: 18:49
Печать  
извиняюсь за свою тупость, я просто сер в этом. справлюсь конечно в итоге гуглем, подтянусь тогда в вопросе
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: gdb
Ответ #5 - 01. Марта 2011 :: 19:16
Печать  
ol писал(а) 01. Марта 2011 :: 18:48:
да - и если стоит sql 2000 на машине, то пункт "установить ODBC драйвер" уже не нужен ?

Нужен.
Как я понимаю тебе нужны odbc драйвера для Firebird/InterBase.
Эти драйвера в состав MS SQL Server 2000 не входят.
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: gdb
Ответ #6 - 01. Марта 2011 :: 19:21
Печать  
ol писал(а) 01. Марта 2011 :: 18:40:
спасибо. на мисте правда есть вариант через bde. и есть внешняя компонента от romixa. я вот подумал, что проще ?

ODBC - это майкросовтовская технология доступа к данным.
BDE - это альтернативная технология от Borland.
Про ВК от ромикса не слышал.
я использовал odbc
  

1&&2&&3
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #7 - 01. Марта 2011 :: 19:42
Печать  
InterBase - судя по всему shareware
попробую Firebird

а каким пользовался, если не секрет ?
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: gdb
Ответ #8 - 01. Марта 2011 :: 19:59
Печать  
мне один наш вендор высылал свое ПО на основе FB-сервера в нем был и драйвер
А вообще думаю нужно брать тут http://www.firebirdsql.org/index.php?op=files&id=odbc
  

1&&2&&3
Наверх
 
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: gdb
Ответ #9 - 02. Марта 2011 :: 08:07
Печать  
1 скачать соответствующий драйвер
   Firebird_ODBC_2.0.0.150_Win32.exe
   Firebird_ODBC_2.0.0.150_x64.exe

2 пример подключения у файлу бд Firebird
Код
Выбрать все
Перем RS;


Процедура ВыборФайла(ИмяФайла, Фильтр="xml")

	Каталог = "";
	Стр = "Файл БД (*." + Фильтр + ")|*." + Фильтр + "";

	Если ФС.ВыбратьФайл(0, ИмяФайла, Каталог, "Выберите файл", Стр, , ) = 1 Тогда
	    ИмяФайла = Каталог + ИмяФайла;
	КонецЕсли;

КонецПроцедуры		//	ВыборФайла()


Процедура ПриНачалеВыбораЗначения(ИдЭлементаДиалога, Фл)

	Если ИдЭлементаДиалога = "ПутьКБД"	Тогда

		ВыборФайла(ПутьКБД, "*");

	КонецЕсли;

КонецПроцедуры		//	ПриНачалеВыбораЗначения()



//
//
Функция СоединитсяСБД(ПутьКФайлу)

	Если ПустоеЗначение(ПутьКФайлу) = 1 Тогда
		Возврат 0;
	КонецЕсли;

	Если ФС.СуществуетФайл(ПутьКФайлу) = 0 Тогда
		Возврат 0;
	КонецЕсли;

	СтрокаСоединения = "Driver=Firebird/InterBase(r) driver;Uid=SYSDBA;Pwd=masterkey; DbName=127.0.0.1:" + ПутьКФайлу + ";Charset=WIN1251;";

	База = СоздатьОбъект("ODBCDatabase");
	База.Соединение(СтрокаСоединения);

	RS = СоздатьОбъект("ODBCRecordset");
	RS.УстБд(База);

	Возврат 1;

КонецФункции  

  
Наверх
wwwICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #10 - 02. Марта 2011 :: 08:19
Печать  
Firebird_ODBC_2.0.0.150_Win32.exe драйвер не помогает.
уже в настройка ODBC выдает ошибку подключения к файлу. строку подключения я даж не пробовал

тут судя по всему проблема именно в драйвере, строки подключения то все очень удобно для всех драйверов собраны на сайте подключений
  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: gdb
Ответ #11 - 02. Марта 2011 :: 08:28
Печать  
ol писал(а) 02. Марта 2011 :: 08:19:
Firebird_ODBC_2.0.0.150_Win32.exe драйвер не помогает.
уже в настройка ODBC выдает ошибку подключения к файлу. строку подключения я даж не пробовал

тут судя по всему проблема именно в драйвере, строки подключения то все очень удобно для всех драйверов собраны на сайте подключений

Какое еще подключение к файлу?  Ужас

Файл - GDB - это файл базы данных от СУБД Firebird (или Интербэйс). Таким образом, для работы с этим файлом надо:
1) Установить сервер FireBird
2) Подключить к нему новую БД из указанного файла
3) При помощи ODBC настроить соединение с сервером из п. 1.
4) Пользоваться
  
Наверх
ICQ  
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: gdb
Ответ #12 - 02. Марта 2011 :: 09:03
Печать  
да, еще же сам сервер Firebird нужен  Очень довольный Очень довольный Очень довольный
  
Наверх
wwwICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #13 - 02. Марта 2011 :: 11:17
Печать  
во! это уже несколько новое направление - сервер Firebird )) да я уж и сам начинал об этом думать. Даже нашел в настройках программы, что этот файл формирует название сервера:
версия сервера WI-V6.3.4.13130 Firebird 2.0

кажется, что то отшень древнее
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: gdb
Ответ #14 - 03. Марта 2011 :: 02:40
Печать  
Сервер ставить не обязательно - он необходим только при многопользовательской работе. Ну и в отладке намного удобнее, а если к gdb обращается ВСЕГДА только ОДИН пользователь - можно установить "embed"-версию, что не требует наличия супер-прав и т.д.
Все зависит от задачи...
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #15 - 03. Марта 2011 :: 12:54
Печать  
yes - получилось! при запущенном сервере - соединение из 1с есть.
теперь осталось только понять, каким образом писать запрос
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #16 - 03. Марта 2011 :: 14:40
Печать  
окончательно разобрался, выкладываю описание решения, кому понадобится

собственно текст модуля класса для соединения

Код
Выбрать все
// ---------------------------------------------------------------
Функция Сам(конт) возврат конт КонецФункции

//*******************************************
Функция Соединение(имяфайла,отключитьпредупреждение=0) экспорт
    // перед попыткой соединения с базой нужно:
	// установить сервер firebird: Firebird-2.0.6.13266_0_win32.exe
	// установить драйвер ODBC fb: Firebird_ODBC_2.0.0.150_Win32.exe
	// убедиться что сервер запущен.
	// работа с iSQL
	// выполнить "C:\Program Files\Firebird\Firebird_2_0\bin\isql.exe"
	// потом:
	// SQL>connect <имя файла (в кавычках)>
	// CON>user 'sysdba' password 'masterkey';
	// потом узнать имена таблиц:
	// SQL>show table;        
	// алиасы для файлов баз данных - в файле "C:\Program Files\Firebird\Firebird_2_0\aliases.conf"
                              

	упреждение);
	стрсоединение="DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME="+имяфайла;

	_база =СоздатьОбъект("ODBCDatabase");  
	Если _база.Соединение(стрсоединение) =0 Тогда
		если отключитьпредупреждение<>1 тогда
			Предупреждение("Ошибка открытия БД "+имяфайла, 60);
		КонецЕсли;
		Возврат 0;
	КонецЕсли;

	_рс =СоздатьОбъект("ODBCRecordSet");
	сам(контекст).УстБД(_база);                        
	возврат 1;                                  

КонецФункции  
 

  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: gdb
Ответ #17 - 04. Марта 2011 :: 02:37
Печать  
ol писал(а) 03. Марта 2011 :: 12:54:
yes - получилось! при запущенном сервере - соединение из 1с есть.
теперь осталось только понять, каким образом писать запрос

Очень просто - это обычный PL-SQL... примерно такой же как в oracle.

Не путай только с T-SQL, который используется в MSSQL и т.д.

P.S.: Когда-то давно мною был нарисован сей класс
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #18 - 04. Марта 2011 :: 14:55
Печать  
как раз сегодня с этой страницы, где класс  Улыбка поставил плюс, за то что помог мне понять нехитрую идею - перед именем алиаса в строке соединения нужно через двоеточие писать ip сервера. Как только это дошло - так снята была последняя проблема. так что спасибо еще раз  Улыбка
  
Наверх
ICQ  
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #19 - 04. Марта 2011 :: 14:59
Печать  
а что касается разновидностей sql запросов - то я уж сбился со счета:
запрос по oledb к файловой базе;
запрос обычной sql базы
запрос к access, excel (есть Ole вариант), теперь firebird

везде есть некие тонкие различия. в классификации пока не разбираюсь
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: gdb
Ответ #20 - 05. Марта 2011 :: 03:25
Печать  
ol писал(а) 04. Марта 2011 :: 14:59:
а что касается разновидностей sql запросов - то я уж сбился со счета:
запрос по oledb к файловой базе;
запрос обычной sql базы
запрос к access, excel (есть Ole вариант), теперь firebird

везде есть некие тонкие различия. в классификации пока не разбираюсь

Ты не совсем прав. разновидностей языков sql не так уж и много - их всего 2: Transact-SQL или T-SQL и PL/SQL (Procedural Language/Structured Query Language). Остальное - лишь диалекты.
  
Наверх
 
IP записан
 
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
Re: gdb
Ответ #21 - 05. Марта 2011 :: 06:09
Печать  
ты прав, типичные рассуждения 1-с ника  Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать