Гедымин как COM сервер
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (Новая страница: «Ниже приведен пример процедуры для Microsoft Excel. В результате ее выполнения первая колонка на …») |
SYSDBA (обсуждение | вклад) |
||
| Строка 59: | Строка 59: | ||
[[Category:Учебный курс]] | [[Category:Учебный курс]] | ||
[[Category:VBScript]] | [[Category:VBScript]] | ||
| + | [[Category:Импорт/экспорт данных]] | ||
Текущая версия на 15:02, 25 января 2012
Ниже приведен пример процедуры для Microsoft Excel. В результате ее выполнения первая колонка на первом рабочем листе будет заполнена наименованиями контактов из базы данных. Не забудьте прописать правильный путь к базе данных, имя пользователя и пароль.
Sub LoadContacts() Dim Gedemin, Obj, UserName, UserPassword, DatabaseName, Counter UserName = "имя_пользователя" UserPassword = "пароль_пользователя" DatabaseName = "строка_подключения_к_базе_данных" Set Gedemin = CreateObject("Gedemin.gsGedeminApplication") If Gedemin.LoginSilent(UserName, UserPassword, DatabaseName) Then Set Obj = Gedemin.Designer.CreateObject(Null, "TgdcContact", "") Obj.Open Counter = 1 Do While Not Obj.EOF If Counter > 1000 Then Exit Do Counter = Counter + 1 Worksheets(1).Cells(Counter, 1).Value = Obj.FieldByName("name").AsString Obj.Next Loop Gedemin.Designer.DestroyObject(Obj) Else MsgBox "Невозможно подключиться к базе данных!" End If End Sub
Тоже самое, но с обращением к базе данных не через бизнес-объект, а с помощью прямого SQL запроса:
Sub LoadContacts2() Dim Gedemin, ibsql, UserName, UserPassword, DatabaseName, Counter UserName = "имя_пользователя" UserPassword = "пароль_пользователя" DatabaseName = "строка_подключения_к_базе_данных" Set Gedemin = CreateObject("Gedemin.gsGedeminApplication") If Gedemin.LoginSilent(UserName, UserPassword, DatabaseName) Then Set ibsql = Gedemin.Designer.CreateObject(Null, "TIBSQL", "") ibsql.Transaction = Gedemin.gdcBaseManager.ReadTransaction ibsql.Sql.Text = "SELECT name FROM gd_contact" ibsql.ExecQuery Counter = 1 Do While Not ibsql.EOF If Counter > 1000 Then Exit Do Counter = Counter + 1 Worksheets(1).Cells(Counter, 1).Value = ibsql.Fields(0).AsString ibsql.Next Loop Gedemin.Designer.DestroyObject(ibsql) Else MsgBox "Невозможно подключиться к базе данных!" End If End Sub