You could use stored procedures. 

I'm starting to port statements originally written for SQL Server over
to Access (with the .Net version of iBatis) and I think I can get away
with defining database specific functions in the properties file that I
define my database information:

<settings>
        <add key="userid" value="xxxxx" />
        <add key="password" value="xxxxx" />
        <add key="database" value="xxxxx" />
        <add key="datasource" value="xxxxx" />
        <add key="getDate" value="NOW()" />
        <add key="selectKey" value="SELECT @@IDENTITY" />
</settings>

Then in my sql maps:

<insert id="AddressInsert" parameterClass="Address">
        INSERT INTO Address
        (
                Street, 
                City, 
                Zip,
                DateAdded
        )
        VALUES
        (
                #Street#,
                #City#,
                #Zip#,
                ${getDate}
        )
        <selectKey property="AddressId" type="post" resultClass="int">
                ${selectKey}
        </selectKey>
</insert>

Another option would be to maintain database specific copies of your
sql maps :(

- Ron

--- "Barnett, Brian W." <[EMAIL PROTECTED]> wrote:

> We have a web app that runs against SQL Server. All of our SQL maps
> are SQL
> Server compliant. We now have to be able to support Oracle as well.
> (We
> never thought it would happen... a mistake.)
> 
> Anyway, we are wondering if anyone has some general guidelines for
> writing
> SQL Maps so that they run against both databases. Before you get
> scared and
> close this email, let me say we're not looking for a list of
> differences
> between the two databases, and how to resolve those differences. We
> already
> have a doc that explains those things.
> 
> The first issue we have run into is the CONVERT and CAST functions of
> SQL
> Server. We make use of them in our SQL maps. We are debating on
> whether we
> should take them out and do the conversion or casting in java code or
> pass a
> parameter to the SQL map indicating SQL Server or Oracle and then
> have a
> <dynamic> element that generates the appropriate CONVERT or CAST
> syntax.
> 
> All input is welcome.
> 
> Thank you,
> Brian Barnett
> 

Reply via email to