On 29/04/2011 09:00, Geoff Worboys wrote: > Adriano dos Santos Fernandes wrote: >> Could also be done with isc_create_database. > The IB6 API documentation notes this as: > "The isc_create_database( ) method is not currently supported > from user applications. It is for internal use only. Use > isc_dsql_execute_immediate( ) to create a database with a > valid database handle." > > Which I always took to mean that it was not to be used and I > could not find any release notes changing that status. If > this is now considered a public API then I think I will change > my code to use that instead. > > There is nothing wrong with it, except a dumb last parameter.
It's de facto public. >>> So when isc_dsql_execute_immediate is called with CREATE DATABASE >>> the database handle is null and there is no current connection >>> character set. How is the statement string interpreted? >>> >> CREATE DATABASE is preparsed in the client. It has SET NAMES >> <charset> clause. >> Client don't send it to server. It calls isc_create_database >> passing isc_dpb_lc_ctype. >> There is no SQL text command involved. > That will be why I had so much trouble finding how it was processed > in the server source code ;-) > > Hmmm... SET NAMES I thought an ISQL only command. Can I send that > via isc_dsql_execute_immediate or something to change some internal > state in the client DLL? > You confused things. ISQL own command is "SET NAMES ...". The client library understand "CREATE DATABASE ... SET NAMES ...". ISQL appends it own SET NAMES configured value to user issued CREATE DATABASE commands. Adriano ------------------------------------------------------------------------------ WhatsUp Gold - Download Free Network Management Software The most intuitive, comprehensive, and cost-effective network management toolset available today. Delivers lowest initial acquisition cost and overall TCO of any competing solution. http://p.sf.net/sfu/whatsupgold-sd Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel