Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP & FireBird / 7 сообщений из 7, страница 1 из 1
20.05.2009, 11:38
    #35996163
Talla2k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
Добрый день.
Столкнулся с проблемой. Есть программа написанная на VFP. Необходимо чтобы она коннектилсь к FireBird базе и забирала данные. Программист, который поддерживает VFP отказывается что либо делать( говорит...переделайте сетевую базу в DBF).

Я не знаток VFP, но ИМХО тут делов на 5 минут.

Вот рабочий кусок кода на Delphi

<CODE>
var Obj,Command,Data:OleVariant;
Res:Variant;
begin
Obj:=CreateOleObject('ADODB.Connection');
try
Obj.CursorLocation := 3;
Obj.ConnectionTimeOut :=1200;
Obj.ConnectionString := 'driver={Firebird/InterBase(r) driver};uid=SYSDBA;pwd=masterkey;database=D:\IB\Print.gdb;CHARSET=WIN1251;';
Obj.Open;
//
Command:=CreateOleObject('ADODB.Command');
Command.ActiveConnection:=Obj;
Command.CommandText :='SELECT * FROM COMMENT';
//
Data:=CreateOleObject('ADODB.Recordset');
Data:=Command.Execute();
while not Data.EOF do
begin
Memo1.Lines.Add( Data.Fields['ID'].Value );
Memo1.Lines.Add( Data.Fields['CASHID'].Value );
Data.MoveNext;
end;
//
finally
Command:=null;
Data:=null;
Obj.Close;
Obj:=null;
end;
end;
</CODE>

Подскажите , как это будет выглядеть в VFP???
Вот мой вариант :
<CODE>

Local vConnect, vCommand, vData

vConnect = CreateObject( 'ADODB.Connection' )
v='d:\kassa\'
vConnect.ConnectionString = 'driver={Firebird/InterBase(r) driver};uid=SYSDBA;pwd=masterkey;database=' + ForcePath( 'PRINT.GDB', v ) + ';CHARSET=WIN1251;'
vConnect.ConnectionTimeOut =1200
vConnect.CursorLocation = 3
vError = ''
On Error vError = Message()
vConnect.Open( vConnect.ConnectionString )
On Error
If !Empty( vError )
=UserMes( 'Error On Connect - ' + vError )
Return .F.
EndIf

vCommand = CreateObject( 'ADODB.Command' )
vCommand.ActiveConnection = vConnect
vCommand.CommandText = "SELECT * FROM COMMENT"

далее пошел код с ошибками ибо пишу впервые

vData = CreateObject('ADODB.RecordSet')
vData = vCommand.Execute
пока vData.EOF=0 делать
vData.Fields['ID'].Value
vData.Field['CASHID'].Value
vData.MoveNext
конец пока
</CODE>
...
Рейтинг: 0 / 0
20.05.2009, 11:47
    #35996212
Sergey Sizov.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
Talla2k,
вот пример из рабочей проги. Вместо вызова хранимки подставь свой запрос. Работу с параметрами можешь выкинуть или положить в загашник для будущих применений.
Вместо вызова метода m_Ado_getconnstring() поставь свою строку коннекта.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
Local loConnection, loCommand, loAdostream, loRecordset, llFatal, llError
loConnection = Createobject('ADODB.Connection')
loCommand = Createobject('ADODB.Command')
loAdostream = Createobject('ADODB.Stream')
loRecordset = Createobject('ADODB.Recordset')
loConnection.Open(This.m_Ado_getconnstring())
loCommand.acTiveconnection = loConnection
With loRecordset
	.cuRsortype =  1 
	.cuRsorlocation =  3 
	.loCktype =  3 
Endwith
With loCommand
	.acTiveconnection = loConnection
	.coMmandtype =  4 
	.coMmandtext = "Documents_SelectWithUniq"
	.Parameters.Append(.crEateparameter('ID',  3 ,  1 ,  , lnId))
	loRecordset = .exEcute()
Endwith
With loRecordset
	ldDate = .Fields('DateBegin').Value
	lnFirmid = .Fields('FirmID').Value
	lcFilename = .Fields('FileName').Value
Endwith
If Not File(lcFilename)
	With loAdostream
		.Type =  1 
		.Open()
		.Write(loRecordset.Fields('ImageOfDocument'))
		.saVetofile(lcFilename,  2 )
		.Close()
	Endwith
Endif
loRecordset.Close()
loConnection.Close()
...
Рейтинг: 0 / 0
20.05.2009, 13:05
    #35996445
mvictor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
odbc не пробовали ?
теоретически, там меньше возможностей, но для vfp это "роднее"

Сам с firebird из vfp не работал, комментировать различные драйверы не могу.
на сайте firebird есть ссылки
...
Рейтинг: 0 / 0
20.05.2009, 13:35
    #35996515
Talla2k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
Господа, а может ли кто-нибудь проверить кусок кода в действии ???

Local vConnect, vCommand, vData

vConnect = CreateObject( 'ADODB.Connection' )
v='d:\kassa\' {// путь к базе...укажите правильный}
vConnect.ConnectionString = 'driver={Firebird/InterBase(r) driver};uid=SYSDBA;pwd=masterkey;database=' + ForcePath( 'PRINT.GDB', v ) + ';CHARSET=WIN1251;'
vConnect.ConnectionTimeOut =1200
vConnect.CursorLocation = 3
vConnect.Open( vConnect.ConnectionString )


vCommand = CreateObject( 'ADODB.Command' )
vCommand.ActiveConnection = vConnect
vCommand.CommandText = "SELECT * FROM COMMENT"


vData = CreateObject('ADODB.RecordSet')
vData = vCommand.Execute
Do While vData.EOF = 0
vData.Fields['ID'].Value
vData.Field['CASHID'].Value
vData.MoveNext
EndDo

vData.Close()
vConnect.Close()

Единственное, что я не знаю...это как отобразить данные.
Т.е. данные
vData.Fields['ID'].Value
vData.Field['CASHID'].Value
нужно куда-то отобразить.

Сама БД во вложении. Ссылку на FireBird и ODBC сообщу.
...
Рейтинг: 0 / 0
20.05.2009, 13:37
    #35996519
Talla2k
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
mvictorodbc не пробовали ?
теоретически, там меньше возможностей, но для vfp это "роднее"


А я по Вашему как работаю ? Как раз через ODBC.
Или я что-то не понял ???
...
Рейтинг: 0 / 0
20.05.2009, 13:52
    #35996559
VFP & FireBird
Talla2kmvictorodbc не пробовали ?
теоретически, там меньше возможностей, но для vfp это "роднее"


А я по Вашему как работаю ? Как раз через ODBC.
Или я что-то не понял ???ADODB и ODBC - две большие разницы.
...
Рейтинг: 0 / 0
20.05.2009, 13:52
    #35996562
mvictor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VFP & FireBird
наверное, можно и так
но мне лично удобнее через :
con_hndl=SQLSTRINGCONNECT( .....) && или SQLCONNECT()
sqlexec(m.con_hndl,'select * from ...')
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP & FireBird / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]