??? запрос из VBA на Interbase

Программирование на Visual Basic for Applications
vlads
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.04.2005 (Пт) 11:14
Откуда: Днепропетровск

??? запрос из VBA на Interbase

Сообщение vlads » 15.04.2005 (Пт) 11:18

Ест IB5.6 база comp1:c:\mybase.gdb

как выполнить запрос из vba
select max(fcode) from anytable

дайте пример кода, а то ниде не могу найти

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 12:01

Чем подключаетесь?

а запрос c.Execute("select max(fcode) from anytable")

Удачи

vlads
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.04.2005 (Пт) 11:14
Откуда: Днепропетровск

Сообщение vlads » 15.04.2005 (Пт) 12:07

что значит чем подключаюсь.
мне в переменную надо загнать ответ сервера

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 13:03

Если через ADO то я использую IBProvider

Код: Выделить всё
Sub sample1()
Dim cn As New ADODB.Connection

'use connection string from file "employee.ibp":
'data source=localhost:d:\database\employee.gdb;User ID=gamer;password=vermut;
'ctype=win1251;auto_commit=true;

cn.Open "file name=d:\database\employee.ibp"
cn.Close

'Standart connection methods
cn.Provider = "LCPI.IBProvider"

' Using user
cn.Open "data source=localhost:d:\database\employee.gdb;ctype=win1251;" & _
         "user=gamer;password=vermut"


Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset

cmd.ActiveConnection = cn
cmd.CommandText = "select * from employee order by emp_no"

'Creation of recordset with the unidirectional access
Set rs = cmd.Execute

While Not rs.EOF
  Debug.Print RowToStr(rs)
  rs.MoveNext
Wend

Debug.Print "+++++++++++++++++++++++++++"
rs.Close
cn.Close


Если через ODBC то могу посоветовать драйвер ODBC6.0 или GeminiODBC - это из бесплатных как настраивать и подключаться через ODBC спроси в разделе "Базы данных"

ftp://195.248.180.147:2121/rus_IBProviderFree.exe - вот ссылка на ADO провайдер
ftp://195.248.180.147:2121/ibgem_21_eval.zip- это ссылка на GeminiODBC

Удачи

vlads
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.04.2005 (Пт) 11:14
Откуда: Днепропетровск

Сообщение vlads » 15.04.2005 (Пт) 13:50

на попытку обьявитьь переменую DIM...
ругается User-defined type not defined

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 14:02

А в Tools->Referens подключять библиотеку кто будет?
Тебе нужна Microsoft ActiveX Data Objects 2.5 Library
или Microsoft ActiveX Data Objects 2.6 Library

Читай справку

vlads
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.04.2005 (Пт) 11:14
Откуда: Днепропетровск

Сообщение vlads » 15.04.2005 (Пт) 14:30

спасиба, помог обалденно.
скажи еще одну вещь, что он хочет
на строке
Set rs = cmd.Execute

кричит Automatic transaction is disable

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 14:53

делаешь
cn.BeginTrans
а потом если все хорошо
rs.Close
cn.CommitTrans
cn.Close

а если плохо то
rs.Close
cn.RollbackTrans
cn.Close

vlads
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 15.04.2005 (Пт) 11:14
Откуда: Днепропетровск

Сообщение vlads » 15.04.2005 (Пт) 15:07

спасиба. взлетело.
вопрос закрыт.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 15.04.2005 (Пт) 15:12

Сходи на http://www.ibase.ru если есть необходимость
Удачи


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 60

    TopList