|
VFP & FireBird
|
|||
---|---|---|---|
#18+
Добрый день. Столкнулся с проблемой. Есть программа написанная на 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> ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:38 |
|
VFP & FireBird
|
|||
---|---|---|---|
#18+
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.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 11:47 |
|
VFP & FireBird
|
|||
---|---|---|---|
#18+
odbc не пробовали ? теоретически, там меньше возможностей, но для vfp это "роднее" Сам с firebird из vfp не работал, комментировать различные драйверы не могу. на сайте firebird есть ссылки ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 13:05 |
|
VFP & FireBird
|
|||
---|---|---|---|
#18+
Господа, а может ли кто-нибудь проверить кусок кода в действии ??? 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 сообщу. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 13:35 |
|
VFP & FireBird
|
|||
---|---|---|---|
#18+
mvictorodbc не пробовали ? теоретически, там меньше возможностей, но для vfp это "роднее" А я по Вашему как работаю ? Как раз через ODBC. Или я что-то не понял ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 13:37 |
|
VFP & FireBird
|
|||
---|---|---|---|
#18+
Talla2kmvictorodbc не пробовали ? теоретически, там меньше возможностей, но для vfp это "роднее" А я по Вашему как работаю ? Как раз через ODBC. Или я что-то не понял ???ADODB и ODBC - две большие разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2009, 13:52 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1586428]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 153ms |
0 / 0 |