powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / VFP & FireBird
7 сообщений из 7, страница 1 из 1
VFP & FireBird
    #35996163
Talla2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Столкнулся с проблемой. Есть программа написанная на 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
VFP & FireBird
    #35996212
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
VFP & FireBird
    #35996445
mvictor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
odbc не пробовали ?
теоретически, там меньше возможностей, но для vfp это "роднее"

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

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
VFP & FireBird
    #35996519
Talla2k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mvictorodbc не пробовали ?
теоретически, там меньше возможностей, но для vfp это "роднее"


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


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


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