Гедымин как COM сервер
Материал из GedeminWiki
Ниже приведен пример процедуры для 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