Что нового

подключение к FireBird. Отличия от mySQL

F9

Новичок
Сообщения
71
Репутация
2
Доброго дня, гуру!

Возникла необходимость подключаться к базе FireBird Classic 3.0
В связи с чем возник вопрос - а чем принципиально отличается процедура коннекта к базе FB от коннекта к базе mySQL ?

К примеру - рабочая функция SQ()
Код:
Func SQ()
Local $obdc_drv = "MySQL ODBC 3.51 Driver"
Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $obdc_drv)
	If @error or $val = "" Then
			MsgBox(64,"Внимание","Вероятно не установлен"& @CR & $obdc_drv)
			Exit
	EndIf
; Подключаемся к Серверу
Global $MySQLConn = ObjCreate("ADODB.Connection")
$MySQLConn.Open("DRIVER={MySQL ODBC 3.51 Driver};SERVER=" & '10.32.10.36' & ";DATABASE=pharm_zakaz;UID=" & 'root' & ";PWD=" & '***' & ";PORT=3306" & "CHARSET=cp1251;")
$MySQLConn.Execute("SET NAMES 'cp1251'")

$sq = $MySQLConn.Execute("SELECT FIO from manager")
MsgBox(16,"",$sq.Fields(0).Value)
EndFunc

Возвращает рекордсет, первое значение которой нам показывает msgbox


А на основе ее аналогичная функция FB()
Код:
Func FB()
	Local $obdc_drv2 = "Firebird/InterBase(r) driver"
Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $obdc_drv2)
	If @error or $val = "" Then
			MsgBox(64,"Внимание","Вероятно не установлен"& @CR & $obdc_drv2)
			Exit

	EndIf
; Подключаемся к Серверу
Global $adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open("DRIVER={Firebird/InterBase(r) driver};UID=SYSDBA;PWD=masterkey; DBNAME=127.0.0.1:E:\Base\!IA\IA_Copy\IAPTEKA.FDB;")

	$fb = $adoCon.Execute("select PL_NAME from plist where PLID > 0")
	MsgBox(16,"",$fb.Fields(0).Value)



EndFunc

говорит нам, что $fb - это не объект
Код:
Variable must be of type "Object".:

Что требует FIreBird дополнительно ?
Строка инициализации взята отсюда - http://www.connectionstrings.com/firebird/
 
Автор
F9

F9

Новичок
Сообщения
71
Репутация
2
F#@k !!
Ответ нашелся сам собой:
требуется дополнительная DLL - не помню где нашёл в сети подсказку, но:
Код:
DllOpen("C:\Program Files\FirebirdClassic\bin\gds32.dll")


На данном форуме решения такого не нашёл, поэтому прошу не удалять, пригодиться кому-нибудь!
 
Верх