Marc Santhoff wrote:
Am Montag, den 02.06.2008, 09:19 -0400 schrieb Drew Jensen:
David Warren wrote:
to change a long filter that syntax wise works with oo base macros.
I have managed to change a filter to run a report but oo Base has to
have double quotes around file and field names and single quotes around
variables (unlike straight sql).
This means that a long query can only be changed by adding something on
the end or replacing a string in the middle. Is it at all possible to
build up an sql query with select, from, where and order clauses as
separate components that can be replaced in a macro and then
concatenated together.
Thanks again for your patience but I need need to create sql
commands dynamically to update the database as well as filter reports,
forms and queries.
David
The answer is yes.
Hi David and Drew,
I had that problem once and Frank kindly pointed me to another Service.
The solution looks like this:
sub quoteSQL
oDataSource = createUnoService( _
"com.sun.star.sdb.DatabaseContext" ).getByName( "test j" )
oConnection = oDataSource.getConnection( "marc", "*******" )
oCmp = oConnection.createQueryComposer()
oCmp.setQuery("SELECT A, B FROM TestTab WHERE ((A=15021) OR (C=1,2))")
msgbox oCmp.getComposedQuery()
oConnection.close()
end sub
Btw., the rule of single and double quotes does not always hold true,
but it is a property of the underlying database in use. You can fetch
that information from the metadata somewhere.
This dates back to 1.1.3 as many macro code I wrote, but since the API
is as stable as possible it should do nowadays.
Hi Mark,
There is that service also, True. But from the current Developers Guide
entry for SQLQueryComposer this:
"The com.sun.star.sdb.SQLQueryComposer service is deprecated. Though you
can still use it in your programs, you are encouraged to replace it with
the SingleSelectQueryComposer service. "
Given that David is starting a project from scratch it would seem
prudent to avoid deprecated services, IMO.
Drew
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]