Поиск   |   Контакты   |   Добавить в Избранное  
Генератор отчетов Genrep
 

Использование Microsoft ActiveX Data Object


    С помощью библиотеки ADO можно обратиться к огромному количеству типов баз данных, например, dBASE, Access, Excel, Oracle,
    Paradox, MS SQL Server, Sybase, текстовые файлы, FoxPro, Active Directory Service, Microsoft Jet, Interbase, Informix, PostgreSQL, MySQL и т.д.,
      
    В качестве данных для отчета может быть использован источник заданный строкой подключения ADO.
    В этом случае в качестве источника для отчета будет использован RecordSet

    В шаблоне отчета в теге файла для отчета должен быть указан файл инициализации в расширением sql:

    ----------------------------------------------------------------------------------------------
    [<cursor.sql]
    [<Detal]
    данные отчета
    [Detal>]
    [cursor.sql>]


    Содержание файла cursor.sql:

    ----------------------------------------------------------------------------------------------
    ; ConnectionString ADODB Connection String to SQL
    ; Command SQL Command string
    ;
    ;## SQL
    ;# ConnectionString = "Driver={SQL Server};SERVER=wv-200;;UID=genrep;PWD=123;Database=genrep"
    ;# ConnectionString = "Provider=sqloledb;Data Source=wv-200;Initial Catalog=genrep;User Id=genrep;Password=123;"
    ;# Command = "select * from dbo.tb_cursor(nolock) order by category_i, english_na"
    ;
    ;## VFP
    ;# ConnectionString = "Provider=VFPOLEDB;Data Source=C:\Nort;Password="";Collating Sequence=MACHINE"
    ;# ConnectionString= "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=C:\Nort;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;"
    ;# ConnectionString = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\nort\northwind.dbc;Exclusive=No; NULL=NO;Collate=Machine;BACKGROUNDFETCH=NO;DELETED=NO;"
    ;# ConnectionString = "Provider=VFPOLEDB;Data Source=c:\nort\northwind.dbc;Collating Sequence=machine;"
    ;# Command="select * from products.dbf"
    ;
    [genrep]
    ConnectionString="Provider=sqloledb;Data Source=wv-200;Initial Catalog=genrep;User Id=genrep;Password=123;"
    Command = "select * from dbo.tb_cursor(nolock) order by category_i, english_na"



    Для вызова из программ необходимо использовать функцию RunRepEx:
    extern "C" int WINAPI RunRepEx (char * fname,int isd,char *ConnStr)
    в этом случае параметр ConnectionString в файле задавать нет необходимости

    Например в VFP:

    DECLARE Integer RunRepEx IN ..\genrep.dll AS RunRepEx String @cName, Integer Isd , String @ConStr
    RunRepEx("..\sql\products_2.sbx",1,"Provider=VFPOLEDB;Data Source=..\sql\nort\northwind.dbc;Collating Sequence=machine;")



    Справочник по ADO Connection String:
    http://www.codeproject.com/KB/database/connectionstrings.aspx

    VBscript для создания файла источника