Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подключение ADODB. Как передать в другую процедуру? / 4 сообщений из 4, страница 1 из 1
06.02.2014, 13:15:11
    #38551750
Melafon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение ADODB. Как передать в другую процедуру?
Добрый день! Сейчас пишу клиент на Excel для управления базой данных FB. Не могу решить проблему как заливать данные. Данные заливаются макросом построчечно, т.е. открываем соединение ADODB, бежим по строчкам, набираем данные строчки в переменную, выполняем, переходим к следующей строчке. Когда все залито, закрываем соединение.

Проблема в том, что нужно подливать разные таблицы и соответственно писать под каждую отдельную процедуру, или для каждой строчки открывать соединение, выполнять, закрывать, а строчек может быть до 100 тыс., соответственно выполнение замедляется

Хочется разделить на 2 процедуры. В основной запускаем процедуру открытия соединения, далее выполняем запросами все необходимые действия (которые в разных случаях будут разные), потом запускаем процедуру закрытия соединения. Это вообще возможно?

Разделил эти этапы, только не знаю как объявить Public для подключения, чтобы использовать его в основной процедуре.

1. переменные, открытие соединения
Dim FBcon As ADODB.Connection
Dim FBcmd As ADODB.Command
Set FBcon = CreateObject("ADODB.Connection")
FBcon.Provider = "MSDASQL.1"

FBcon.ConnectionString = "DSN=" & DSN_name & ";Driver=Firebird/InterBase(r) driver;Dbname=" & DB_name & ";CHARSET=WIN1251;UID=SYSDBA;Client=C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll;"

FBcon.Open
Set FBcmd = CreateObject("ADODB.Command")
FBcmd.ActiveConnection = FBcon
FBcmd.CommandType = adCmdText


2.эта часть крутится в цикле перебирая строчки таблицы excel. Ее хочу вынести в основную процедуру
FBcmd.CommandText = "insert into " & TableName & " " & columnstext & " values " & datatext & ""
FBcmd.Execute



3. закрытие соединения
FBcon.Close
Set FBcon = Nothing
...
Рейтинг: 0 / 0
06.02.2014, 14:14:19
    #38551852
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение ADODB. Как передать в другую процедуру?
Hello, Melafon!
You wrote on 6 февраля 2014 г. 14:13:31:

Melafon> Сейчас пишу клиент на Excel для управления базой данных FB.
это ужасно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
06.02.2014, 14:43:18
    #38551926
Alex Truhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение ADODB. Как передать в другую процедуру?
Мимопроходящийэто ужасно.

Почему? BASIC как бэйсик. Я когда-то много на VBA писал, для анализа данных, очень мощный инструмент
...
Рейтинг: 0 / 0
06.02.2014, 14:50:00
    #38551948
Melafon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подключение ADODB. Как передать в другую процедуру?
для моих целей нормально. Цель - ведение базы согласованных счетов. Т.е. в Excel заводим, нажимаем кнопку, информация добавляется в базу, где есть бюджет, обрабатывается, на выходе получаем сводную, где есть остаток бюджета. От екселя всего то и требуется - ввод около 10 полей + подгрузка проводок и справочников. Ну и вывод информации в сводную. FireBird и вообще всем связанным с SQL усиленно начал заниматься пару месяцев назад. Еще в начале ноября даже не подозревал о существовании FB. В офисе на VBA программирую с 2008г., в последнее время использовал связку Excel -> Access, управление Access из excel (автоматическая загрузка данных, выполнение макросов из access). Поэтому логично, что первое, что попытался сделать, это из Excel управлять....
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подключение ADODB. Как передать в другую процедуру? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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