Hi Rohit,

On 12.03.2011 07:17, Rohit Kulkarni wrote:
As a first step, I copied the folder DriverSkeleton to
"../connectivity/drivers/" .I created .xcu and .xml files.To run dmake I
must have makefile.mk <http://makefile.mk> in my driver folder. So, I
checked a makefile.mk <http://makefile.mk> in calc folder and made same
for DriverSkeleton driver. Also, I copied exports.dxp and .map files
from calc to DriverSkeleton.
Finally, my DriverSkeleton folder contains following files--

[root@localhost drivers]# cd DriverSkeleton/
[root@localhost DriverSkeleton]# ls
DriverSkeleton.map              Makefile
propertyids.hxx                    SDriver.cxx
SResultSet.hxx                    SStatement.hxx
DriverSkeleton.xcu makefile.mk <http://makefile.mk>
SConnection.cxx                  SDriver.hxx
SResultSetMetaData.cxx      DriverSkeleton.xml
OSubComponent.hxx            SConnection.hxx
SPreparedStatement.cxx      SResultSetMetaData.hxx
exports.dxp                          OTypeInfo.hxx
SDatabaseMetaData.cxx       SPreparedStatement.hxx
SServices.cxx                      How_to_write_my_own_driver.txt
propertyids.cxx                     SDatabaseMetaData.hxx
SResultSet.cxx                     SStatement.cxx

Delete following files they are not longer needed because they already exists in the connectivity module.

- Makefile (you replaced it with makefile.mk)
- propertyids.cxx, propertyids.hxx, OTypeInfo.hxx (these files are located in connectivity/source/inc)

Please rename you xcu and xml file to a more explaining name like VeryFastLdapDriver, just kidding but you should use a better name than DriverSkeleton.xcu or xml :-) The name has to be unique as well as the cxx files.

Best regards,

Ocke


After running dmake in the same folder it give me the following output--

../../../unxlngi6.pro/slo/SResultSet.o
<http://unxlngi6.pro/slo/SResultSet.o>: In function
`connectivity::skeleton::OResultSet::createArrayHelper() const':
SResultSet.cxx:(.text+0x439): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SResultSet.cxx:(.text+0x49d): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SResultSet.cxx:(.text+0x501): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SResultSet.cxx:(.text+0x55f): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SResultSet.cxx:(.text+0x5c3): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
../../../unxlngi6.pro/slo/SResultSet.o:SResultSet.cxx:(.text+0x627)
<http://unxlngi6.pro/slo/SResultSet.o:SResultSet.cxx:(.text+0x627)>:
more undefined references to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const' follow
../../../unxlngi6.pro/slo/SResultSet.o
<http://unxlngi6.pro/slo/SResultSet.o>: In function
`connectivity::skeleton::OResultSet::getMetaData()':
SResultSet.cxx:(.text+0x1f9f): undefined reference to `vtable for
connectivity::skeleton::OResultSetMetaData'
../../../unxlngi6.pro/slo/SResultSet.o
<http://unxlngi6.pro/slo/SResultSet.o>: In function
`connectivity::skeleton::OPropertyMap::getPropMap()':
SResultSet.cxx:(.text._ZN12connectivity8skeleton12OPropertyMap10getPropMapEv[connectivity::skeleton::OPropertyMap::getPropMap()]+0x9b):
undefined reference to
`connectivity::skeleton::OPropertyMap::~OPropertyMap()'
../../../unxlngi6.pro/slo/SStatement.o
<http://unxlngi6.pro/slo/SStatement.o>: In function
`connectivity::skeleton::OStatement_Base::createArrayHelper() const':
SStatement.cxx:(.text+0x58d): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SStatement.cxx:(.text+0x5f1): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SStatement.cxx:(.text+0x658): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SStatement.cxx:(.text+0x6bf): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
SStatement.cxx:(.text+0x726): undefined reference to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const'
../../../unxlngi6.pro/slo/SStatement.o:SStatement.cxx:(.text+0x78d)
<http://unxlngi6.pro/slo/SStatement.o:SStatement.cxx:(.text+0x78d)>:
more undefined references to
`connectivity::skeleton::OPropertyMap::getNameByIndex(long) const' follow
../../../unxlngi6.pro/slo/SPreparedStatement.o
<http://unxlngi6.pro/slo/SPreparedStatement.o>: In function
`connectivity::skeleton::OPreparedStatement::getMetaData()':
SPreparedStatement.cxx:(.text+0xc05): undefined reference to `vtable for
connectivity::skeleton::OResultSetMetaData'
collect2: ld returned 1 exit status
dmake:  Error code 1, while making
'../../../unxlngi6.pro/lib/libDriverSkeletonli.so
<http://unxlngi6.pro/lib/libDriverSkeletonli.so>'


I am building the Skeleton Driver and I dont know how to solve this problem.
Could you please help to solve this problem? Am I doing anything wrong ?

Thanks,
Rohit
On Fri, Mar 11, 2011 at 11:35 AM, Ocke Janssen <ocke.jans...@oracle.com
<mailto:ocke.jans...@oracle.com>> wrote:

    Hi Rohit,


    On 10.03.2011 16:58, Rohit Kulkarni wrote:

        Hi,

        Thanks for your reply. I really appreciate the help.

        I could find the skeleton files at the location you have
        mentioned. Currently we are planning to develop the SDBC driver
        which
        will not be an extension. So, we will have to build the skeleton
        driver
        first, get it in the list of available drivers and then make it
        work for
        LDAP.

        Could you please elaborate the point where you mentioned to search
        for macab key on the website?
        How does the open office dmake understand that it has to build
        this new
        driver?

    I guess you place your driver in connectivity. So in that module you
    find a file named prj/build.lst that is read when call the "build"
    command. But for the start you could simply go in your folder and
    call dmake. Each driver has a xcu file which must be "deliver"ed.
    Which files are needed to copy/deliver is defined in prj/d.lst
    So when you have built your driver with dmake you must call deliver.
    After that go to the module scp2 and call "build" and deliver again.
    Then you have to build the module instsetoo_native and voila your
    OOo ist to install.
    Below follows a simple list of todo's:
    1. Create the driver files (Driver,Connection,Statement,ResultSet,...)
    2. Create the xcu and xml file, take a look at the other drivers for
    inspiration ;-)
    3. dmake
    4. Adjust d.lst to fit your new driver
    5. deliver
    6. Search for the word macab or jdbc in the module scp2 and create
    the same for your new driver
    7. build
    8. deliver
    9. go to instsetoo_native and build
    10. Install your new OOo and enjoy your new driver.
    11. Debug issues ;-)

    - oj



        Thanks,
        Rohit

        On Thu, Mar 10, 2011 at 12:38 PM, Ocke Janssen
        <ocke.jans...@oracle.com <mailto:ocke.jans...@oracle.com>
        <mailto:ocke.jans...@oracle.com
        <mailto:ocke.jans...@oracle.com>>> wrote:

            Hi Rohit,

            First of all you have to decide if the driver should be an
        extension
            or not. I would first try it as extension because you could
        look at
            the mysql driver.

            Not an extension:
            The best and easiest way to start I guess is to simply copy the
            skeleton files in a folder beside the other database drivers in
            connectivity. Further on you should copy e.g. the macab.xml and
            macab.xcu file and rename it to your driver in the same
        directory.
            Search with opengrok
        http://svn.services.openoffice.org/opengrok/
            the macab key inside the other projects e.g. scp2 to include the
            files into the OOo installation. Build OOo.

            As extension:
            Here the best way is to look at the mysqlc/source where the
        mysql
            extension is build and copy the files you need to build the
        oxt. But
            please be aware to replace all occurrences of mysql with
        your name ;-)


            Best regards,

            Ocke


            On 09.03.2011 19:21, Ocke Janssen wrote:

                Hi,

                The driver can be found here
                ooo\odk\examples\DevelopersGuide\Database\DriverSkeleton

                - oj

                PS: I'll write more tomorrow. ;-)

                On 09.03.2011 16:37, Rohit Kulkarni wrote:

                    Currently I am writing an SDBC driver for LDAP
        directories. I am
                    following the guidelines given at
        
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/Database/SDBC_Driver

                    This includes writing Driver, connection, statement and
                    resultset
                    services.

                    I want to compile the skeleton driver code and have
        an entry
                    in the list
                    of available drivers. This driver will be a pseudo
        driver
                    and will not
                    have any functionality. This will help in developing the
                    actual driver.

                    I am not able to find skeleton driver related source
        files.
                    I could
                    locate a folder named skeleton in
        "/OOO320_m19/connectivity/workben/skeleton" but could not
                    find actual
                    source files.

                    Could anyone please give me any pointers regarding

                    1. Where can I find the source files for the
        skeleton driver?
                    2. How to build a skeleton driver?
                    3. How to make an entry in available drivers list?

                    Thanks for your time. I really appreciate the help.

                    Regards,
                    Rohit


                --

          -----------------------------------------------------------------
                To unsubscribe send email to
        dev-unsubscr...@dba.openoffice.org
        <mailto:dev-unsubscr...@dba.openoffice.org>
        <mailto:dev-unsubscr...@dba.openoffice.org
        <mailto:dev-unsubscr...@dba.openoffice.org>>

                For additional commands send email to
        sy...@dba.openoffice.org <mailto:sy...@dba.openoffice.org>
        <mailto:sy...@dba.openoffice.org <mailto:sy...@dba.openoffice.org>>

                with Subject: help


            --

          -----------------------------------------------------------------
            To unsubscribe send email to
        dev-unsubscr...@dba.openoffice.org
        <mailto:dev-unsubscr...@dba.openoffice.org>
        <mailto:dev-unsubscr...@dba.openoffice.org
        <mailto:dev-unsubscr...@dba.openoffice.org>>

            For additional commands send email to
        sy...@dba.openoffice.org <mailto:sy...@dba.openoffice.org>
        <mailto:sy...@dba.openoffice.org <mailto:sy...@dba.openoffice.org>>
            with Subject: help



    --
    -----------------------------------------------------------------
    To unsubscribe send email to dev-unsubscr...@dba.openoffice.org
    <mailto:dev-unsubscr...@dba.openoffice.org>
    For additional commands send email to sy...@dba.openoffice.org
    <mailto:sy...@dba.openoffice.org>
    with Subject: help



--
-----------------------------------------------------------------
To unsubscribe send email to dev-unsubscr...@dba.openoffice.org
For additional commands send email to sy...@dba.openoffice.org
with Subject: help

Reply via email to