summaryrefslogtreecommitdiff
path: root/testautomation/dbaccess/tools/dbcreatetools.inc
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/dbaccess/tools/dbcreatetools.inc')
-rw-r--r--testautomation/dbaccess/tools/dbcreatetools.inc1640
1 files changed, 1640 insertions, 0 deletions
diff --git a/testautomation/dbaccess/tools/dbcreatetools.inc b/testautomation/dbaccess/tools/dbcreatetools.inc
new file mode 100644
index 000000000000..cc99d8d203c5
--- /dev/null
+++ b/testautomation/dbaccess/tools/dbcreatetools.inc
@@ -0,0 +1,1640 @@
+'encoding UTF-8 Do not remove or change this line!
+'**************************************************************************
+' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+'
+' Copyright 2000, 2010 Oracle and/or its affiliates.
+'
+' OpenOffice.org - a multi-platform office productivity suite
+'
+' This file is part of OpenOffice.org.
+'
+' OpenOffice.org is free software: you can redistribute it and/or modify
+' it under the terms of the GNU Lesser General Public License version 3
+' only, as published by the Free Software Foundation.
+'
+' OpenOffice.org is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY; without even the implied warranty of
+' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+' GNU Lesser General Public License version 3 for more details
+' (a copy is included in the LICENSE file that accompanied this code).
+'
+' You should have received a copy of the GNU Lesser General Public License
+' version 3 along with OpenOffice.org. If not, see
+' <http://www.openoffice.org/license.html>
+' for a copy of the LGPLv3 License.
+'
+'/************************************************************************
+'*
+'* owner : marc.neumann@oracle.com
+'*
+'* short description : Library with function for creating all possible databases
+'*
+'***************************************************************************************
+'*
+' #1 fCreateMySQL_ODBC_Datasource
+' #1 fCreateMySQL_JDBC_Datasource
+' #1 fCreateAdabasDatasource
+' #1 fCreateLocalAdabasDatasource
+' #1 fCreateJDBCDatasource
+' #1 fCreateODBCDatasource
+' #1 fCreateDbaseDatasource
+' #1 fCreateADODatasource
+' #1 fCreateTextDatasource
+' #1 fCreateSpreadsheetDatasource
+' #1 fCreateLDAPAddressbookDatasource
+' #1 fCreateEvolutionAddressbookDatasource
+' #1 fCreateWindowsAddressbookDatasource
+' #1 fCreateOutlookAddressbookDatasource
+' #1 fCreateMozillaAddressbookDatasource
+' #1 fRegisterDatabaseFile
+' #1 fDeRegisterDatabaseFile
+' #1 fSetJDBCDriverFiles
+' #1 getIdForDatabaseType
+'*
+'\***********************************************************************************
+
+private const VERBOSE = true
+
+function fCreateMySQL_ODBC_Datasource(sFileName, sOdbcDSN, sUser,optional sRegister) as boolean
+ '/// create a new MySQL database via ODBC file with the given filename
+ '///+ and the given URL
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b>sOdbcDSN:</b> the name of the odbc datasource
+ '/// <b>sUser:</b> the user for the connection
+ '/// <b>sPassword:</b> the password for the connection
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered
+ dim bOK as boolean
+ bOK = FALSE
+
+' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select( hGetDatabaseDisplayName( "sdbc:mysql:odbc:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ MySQLODBC.Check
+ NextBtn.Click
+
+ Kontext "DatabaseWizard"
+
+ '/// add the URL
+ printlog "add the URL"
+ MySQLODBCDSName.setText "sdbc:mysql:odbc:" + sOdbcDSN
+
+ Kontext "DatabaseWizard"
+ NextBtn.Click
+
+ Kontext "DatabaseWizard"
+ '/// add the user name
+ printlog "add the user name"
+ UserName.setText sUser
+
+ '/// check the password required checkbox
+ printlog "check the password required checkbox"
+ PasswordRequired.Check
+
+ Kontext "DatabaseWizard"
+ NextBtn.Click
+
+ Kontext "DatabaseWizard"
+ FinishBtn.Click
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ call fCloseDatabase(true)
+
+ fCreateMySQL_ODBC_Datasource = bOK
+
+end function
+'-------------------------------------------------------------------------
+function fCreateMySQL_JDBC_Datasource(sFileName,sDatabaseName,sHost,sPort,sUser,optional sRegister) as boolean
+ '/// create a new MySQL database via JDBC file with the given filename
+ '///+ and the given URL
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sDatabaseName:</b> the name of the mysql database
+ '/// <b>sHost:</b> the host where the mysql database is running
+ '/// <b>sPort:</b> the port where the mysql database is running
+ '/// <b>sUser:</b> the user for the connection
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered
+ dim bOK as boolean
+ bOK = FALSE
+
+ dim sEntry as string
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ sEntry = hGetDatabaseDisplayName( "sdbc:mysql:jdbc:*" )
+ 'cut off the (JDBC) string
+ sEntry = Mid( sEntry , 1, len(sEntry) - Instr(sEntry,"(") )
+ printlog "entry = " + sEntry
+ DatabaseType.select( sEntry )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ MySQLJDBC.Check
+ NextBtn.Click
+ sleep(1)
+ MySQLDatabaseName.setText(sDatabaseName)
+ MySQLHostName.setText(sHost)
+ MySQLPort.setText(sPort)
+
+ NextBtn.Click
+ sleep(1)
+
+ '/// add the user name
+ printlog "add the user name"
+ UserName.setText sUser
+
+ '/// check the password required checkbox
+ printlog "check the password required checkbox"
+ PasswordRequired.Check
+
+ NextBtn.Click
+ FinishBtn.Click
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateMySQL_JDBC_Datasource = bOK
+
+ sleep(1)
+
+ call fCloseDatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateAdabasDatasource(sFileName,sURL,sUser, optional sRegister) as boolean
+ '/// create a new adabas database file with the given filename
+ '///+ and the given URL
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the URL for the adabas database
+ '/// <b>sUser:</b> the user for connect
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
+ dim bOK as boolean
+ bOK = FALSE
+
+ try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:adabas:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// insert the adabas database name
+ printlog "insert the adabas database name"
+ AdabasDBName.setText("sdbc:adabas:" + sURL)
+ sleep(1)
+ '/// click Next
+ printlog "click Next"
+ NextBtn.Click
+ sleep(1)
+ '/// insert the user
+ printlog "insert the user"
+ UserName.setText sUser
+ PasswordRequired.Check
+ sleep(1)
+ '/// click Next
+ printlog "click Next"
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ ' register the database
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ bOK = true
+ printlog "*** Succeed *** Data source was created"
+
+ fCreateAdabasDatasource = bOK
+
+ sleep(1)
+ call fCloseDatabase(true)
+
+ catch
+ bOk = false
+ warnlog "*** Failed *** Data source was not created"
+
+ endcatch
+
+end function
+'-------------------------------------------------------------------------
+function fCreateLocalAdabasDatasource(sFileName,sDatabaseName,sSuperUser,sSuperPassword, optional sRegister) as boolean
+ '/// create a new adabas database file with the given filename
+ '///+ and the given URL
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the URL for the adabas database
+ '/// <b>sUser:</b> the user for connect
+ '/// <b>sPassword:</b> the password for connect
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
+ dim bOK as boolean
+ bOK = FALSE
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ 'try
+
+ '/// --- Create new Adabas data source ---
+ printlog "--- Create new adabas data source ---"
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:adabas:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+
+
+ Kontext "DatabaseWizard"
+ AdabasBrowse.Click
+ sleep(1)
+
+ Kontext "DataSourceSelection"
+ Create.Click
+ sleep(1)
+
+ Kontext "CreateNewAdabasDatabase"
+ DatabaseName.setText sDatabaseName
+ Administrator.setText sSuperUser
+ AdminPasswordBtn.Click
+ sleep(1)
+
+
+ Kontext "PasswordDLG"
+ Password.setText sSuperPassword
+ PasswordConfirm.setText sSuperPassword
+ PasswordDLG.OK
+
+ Kontext "CreateNewAdabasDatabase"
+ CreateNewAdabasDatabase.OK
+ sleep(10)
+
+ Kontext "DataSourceSelection"
+ DataSourceSelection.OK
+
+ Kontext "DatabaseWizard"
+ '/// click Next
+ printlog "click Next"
+ NextBtn.Click
+ sleep(1)
+ '/// click Next
+ printlog "click Next"
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+
+ sleep(2)
+
+ ' register the database
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ bOK = true
+ printlog "*** Succeed *** Data source was created"
+
+ 'catch
+ bOk = false
+ warnlog "*** Failed *** Data source was not created"
+
+ 'endcatch
+
+ fCreateLocalAdabasDatasource = bOK
+
+ sleep(1)
+ call fCloseDatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateHSQLDatasource(sFileName, optional sRegister) as boolean
+ '/// create a new hsql database file with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
+ dim bOK as boolean
+ bOK = FALSE
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+
+ try
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(10)
+
+ Kontext "DatabaseWizard"
+ CreateNewDatabase.Check
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ FinishBtn.Click
+ sleep(1)
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(10)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(5)
+
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ call fCloseDatabase(true)
+
+ bOK = true
+ catch
+ bOK = false
+ endcatch
+
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateHSQLDatasource = bOK
+
+ sleep(1)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateJDBCDatasource(sFileName,sDriverClass,sURL,sClassPath,sUserName, optional sRegister) as boolean
+ 'TODO:
+
+ 'ExitRestartTheOffice ' because the change the classpath wich is only used after a restart
+ 'Printlog "restart the office to make the classpath work"
+
+ '/// create a new JDBC database file with the given filename
+ '///+ and the given URL
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b>sDatabaseName:</b> the name of the mysql database
+ '/// <b>sHost:</b> the host where the mysql database is running
+ '/// <b>sPort:</b> the port where the mysql database is running
+ '/// <b>sUser:</b> the user for the connection
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered
+ dim bOK as boolean
+ bOK = FALSE
+
+ call fSetJDBCDriverFiles(sClassPath)
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ FileOpen "FileName", "private:factory/sdatabase?Interactive" , "FrameName", "_blank" , "SynchronMode" ,True
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(5)
+
+ Kontext "TabGeneral"
+ DatabaseType.Select "JDBC"
+ sleep(1)
+
+ Kontext "ConnectionType"
+ NextBtn.Click
+
+ Kontext "TabConnection"
+
+ '/// add the URL
+ printlog "add the URL"
+ ConnectURL.setText "jdbc:" + sURL
+
+ '/// add the user name
+ printlog "add the user name"
+ UserName.setText sUserName
+
+ '/// check the password required checkbox
+ printlog "check the password required checkbox"
+ PasswordRequired.Check
+
+ JDBCDriverClass.setText sDriverClass
+
+
+ Kontext "ConnectionType"
+ CreateBtn.Click
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
+ end if
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateJDBCDatasource = bOK
+
+ sleep(1)
+
+ call fCloseDatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateODBCDatasource(sDSName,sUser,sPassword) as boolean
+
+ qaerrorlog "not implemented yet"
+ fCreateODBCDatasource = false
+
+end function
+'-------------------------------------------------------------------------
+function fCreateDbaseDatasource(sFileName,sURL, optional sRegister) as boolean
+ '/// create a new dbase database file with the given filename
+ '///+ and the given URL as dbase path
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the dbase path for the database
+ '/// <b><i>optional</i> bRegister:</b> if true the register the database with the name tt_dBase
+ dim bOK as boolean
+ bOK = FALSE
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:dbase:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ dBasePath.setText "sdbc:dbase:" + ConvertPath(sURL)
+ sleep(1)
+ FinishBtn.Click
+
+ sleep(1)
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ bOK = true
+ 'if bOK = true then
+ ' printlog "--- End of function - *** Succeed ***"'
+ 'else
+ ' warnlog "--- End of function - *** Failed *** Data source was not created"
+ 'endif
+
+ fCreatedBaseDatasource = bOK
+
+ sleep(1)
+
+ call fClosedatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateADODatasource(sFileName,sURL,optional sRegister) as boolean
+ '/// create a new ADO database file with the given filename
+ '///+ and the given URL as dbase path
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the ADO url
+ '/// <b><i>optional</i> sRegister:</b> if set, the database is registed under the given name
+ dim bOK as boolean
+ bOK = FALSE
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:ado:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// add the URL
+ printlog "add the URL " + sURL
+ AdoURL.setText "sdbc:ado:" + sURL
+ sleep(1)
+ FinishBtn.Click
+ sleep(1)
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateADODatasource = bOK
+
+ sleep(1)
+
+ call fClosedatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateTextDatasource(sFileName,sURL, optional sRegister) as boolean
+ '/// create a new text database file with the given filename
+ '///+ and the given URL as dbase path
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the Text url
+ '/// <b><i>optional</i> sRegister:</b> if set, the database is registed under the given name
+ Dim bOK as boolean
+ bOK = false
+
+ '/// --- Create new Text data source ---
+ printlog "--- Create new " + sFileName + " data source ---"
+ printlog "--- with the URL " + sURL + " ---"
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:flat:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ TextPath.setText "sdbc:flat:" + ConvertPath(sURL)
+ sleep(1)
+ FinishBtn.Click
+ sleep(1)
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateTextDatasource = bOK
+
+ sleep(1)
+
+ call fClosedatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateSpreadsheetDatasource(sFileName,sURL, optional sRegister) as boolean
+ '/// create a new spreadsheet database file with the given filename
+ '///+ and the given URL as dbase path
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sURL:</b> the spreadsheet file name
+ '/// <b><i>optional</i> bRegister:</b> if true the register the database with the given name
+ dim bOK as boolean
+ bOK = FALSE
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.Select (hGetDatabaseDisplayName( "sdbc:calc:*" ))
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// add the URL
+ printlog "add the URL"
+ SpreadsheetPath.setText "sdbc:calc:" + ConvertPath(sURL)
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ bOK = true
+ if bOK = true then
+ printlog "--- End of function - *** Succeed ***"
+ else
+ warnlog "--- End of function - *** Failed *** Data source was not created"
+ endif
+
+ fCreateSpreadsheetDatasource = bOK
+
+ sleep(1)
+
+ call fClosedatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateLDAPAddressbookDatasource(sFileName,sHostName,sBaseDN,sPortNr,optional sRegister) as boolean
+ '/// create a new LDAP Addressbook database with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> if true then register the database
+ dim bOK as boolean
+ bOK = FALSE
+' try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:ldap:*" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ LDAPHostName.setText sHostName
+ sleep(1)
+ BaseDN.setText(sBaseDN)
+ sleep(1)
+ FinishBtn.Click
+ sleep(1)
+
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+
+ sleep(5)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+' catch
+' warnlog "*** Failed *** Data source was not created"
+' bOK = false
+' endcatch
+
+ fCreateLDAPAddressbookDatasource = bOK
+
+ sleep(1)
+
+ call fClosedatabase(true)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateEvolutionAddressbookDatasource(sFileName, optional sRegister) as boolean
+ '/// create a new Evolution Addressbook database with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> if true then register the database
+ dim bOK as boolean
+ bOK = FALSE
+ try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:evolution:ldap" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ call fClosedatabase(true)
+
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+ catch
+ warnlog "*** Failed *** Data source was not created"
+ bOK = false
+ endcatch
+
+ fCreateEvolutionAddressbookDatasource = bOK
+
+ sleep(1)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateKDEAddressbookDatasource(sFileName , optional sRegister) as boolean
+ '/// create a new KDE Addressbook database with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> if true then register the database
+ dim bOK as boolean
+ bOK = FALSE
+ try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:kab" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ call fClosedatabase(true)
+
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+ catch
+ warnlog "*** Failed *** Data source was not created"
+ bOK = false
+ endcatch
+
+ fCreateKDEAddressbookDatasource = bOK
+
+ sleep(1)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateWindowsAddressbookDatasource(sFileName , optional sRegister) as boolean
+ '/// create a new Windows Addressbook database with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> if true then register the database
+ dim bOK as boolean
+ bOK = FALSE
+ try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:outlookexp" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ call fClosedatabase(true)
+
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+ catch
+ warnlog "*** Failed *** Data source was not created"
+ bOK = false
+ endcatch
+
+ fCreateWindowsAddressbookDatasource = bOK
+
+ sleep(1)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateOutlookAddressbookDatasource(sFileName, optional sRegister) as boolean
+ '/// create a new Outlook Addressbook database with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFileName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> if true then register the database
+ dim bOK as boolean
+ bOK = FALSE
+ try
+
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:outlook" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+
+ call fClosedatabase(true)
+
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+ catch
+ warnlog "*** Failed *** Data source was not created"
+ bOK = false
+ endcatch
+
+ fCreateOutlookAddressbookDatasource = bOK
+
+ sleep(1)
+
+end function
+'-------------------------------------------------------------------------
+function fCreateMozillaAddressbookDatasource(sFileName, optional sRegister) as boolean
+ '/// create a new mozilla addressbook database file with the given filename
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
+
+ dim bOK as boolean
+ bOK = FALSE
+ try
+ ' delete the file
+ if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
+ app.kill(ConvertPath(sFileName))
+ endif
+
+ Kontext "DocumentWriter"
+ if (DocumentWriter.exists(1)) then
+ DocumentWriter.UseMenu
+ else
+ Kontext "DocumentBackground"
+ DocumentBackground.UseMenu
+ endif
+ hMenuSelectNr(1)
+ hMenuSelectNr(1)
+ hMenuSelectNr(5)
+
+ sleep(4)
+
+ Kontext "DatabaseWizard"
+ ConnectToDatabase.Check
+ sleep(1)
+ DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:mozilla:" ) )
+ sleep(1)
+ NextBtn.Click
+ sleep(1)
+ '/// click finish
+ printlog "click finish"
+ FinishBtn.Click
+ sleep(1)
+ Kontext "SpeichernDlg"
+ Dateiname.setText ConvertPath(sFileName)
+ Speichern.click
+ sleep(1)
+
+ Kontext "MessageBox"
+ if MessageBox.exists then
+ MessageBox.yes
+ end if
+
+ sleep(2)
+
+ if ( IsMissing(sRegister) ) then
+ printlog "don't register datasource"
+ else
+ printlog "register datasource with name " + sRegister
+ call fRegisterDatabaseFile(sFileName,sRegister)
+ end if
+ printlog "*** Succeed *** Data source was created"
+ bOK = true
+
+ call fClosedatabase(true)
+
+ catch
+ qaerrorlog "*** Failed *** Data source was not created"
+ bOK = false
+ endcatch
+
+ fCreateMozillaAddressbookDatasource = bOK
+
+ sleep(1)
+
+end function
+'--------------------------------------------------------------------
+function fRegisterDatabaseFile( sFileName, sName)
+ '/// register a database
+ '/// <u>parameter:</u>
+ '/// <b>sFielName:</b> the file name for the database file
+ '/// <b>sName:</b> The name under which the database is registered
+
+ dim i as integer
+
+ ToolsOptions
+
+ call hToolsOptions ( "Datasources", "Databases" )
+
+ '/// remove registration if exists
+
+ Kontext "TabRegisteredDatabase"
+ for i = 1 to RegisteredDatabases.GetItemCount
+ RegisteredDatabases.select i
+ if RegisteredDatabases.getSeltext() = sName then
+ DeleteBtn.Click
+ Kontext "Active"
+ Active.yes
+ exit for
+ endif
+ next
+
+
+
+ Kontext "TabRegisteredDatabase"
+ NewBtn.Click
+ sleep(1)
+ Kontext "CreateDatabaseLink"
+
+ RegisteredName.setText(sName)
+
+ ' this does not work due to issue 115468
+ ' DatabaseFile.setText(sFileName)
+ ' workaround
+ CreatedatabaseLink.typeKeys("<shift tab>")
+ CreatedatabaseLink.typeKeys("<shift tab>")
+ CreatedatabaseLink.typeKeys(sFileName)
+ ' -
+
+ CreateDatabaseLink.OK
+
+ sleep(1)
+ Kontext "OptionenDlg"
+ OptionenDlg.OK
+
+end function
+'--------------------------------------------------------------------
+function fDeRegisterDatabaseFile( sName)
+ '/// deregister a database
+ '/// <u>parameter:</u>
+ '/// <b>sName:</b> The registered name which should be deregistered
+ dim i as integer
+
+ ToolsOptions
+
+ call hToolsOptions ( "Datasources", "Databases" )
+
+ '/// remove registration for the database
+ printlog "remove registration for the database " + sName
+
+ Kontext "TabRegisteredDatabase"
+ for i = 1 to RegisteredDatabases.GetItemCount
+ RegisteredDatabases.select i
+ if RegisteredDatabases.getSeltext() = sName then
+ DeleteBtn.Click
+ exit for
+ endif
+ next
+
+ try
+ Kontext "Active"
+ Active.yes
+ catch
+
+ endcatch
+ sleep(1)
+ Kontext "OptionenDlg"
+ OptionenDlg.OK
+
+end function
+'-------------------------------------------------------------------------
+function fSetJDBCDriverFiles(sClassPath) as boolean
+ '/// set the java classpath
+ '/// <u>parameter:</u>
+ '/// <b>sClassPath:</b> The Classpath
+
+ Dim x_DriverInstall as boolean
+ x_DriverInstall = FALSE
+
+ call hNewDocument
+ printlog "insert classpath: " + sClassPath
+ ToolsOptions
+ call hToolsOptions ( "StarOffice", "JAVA" )
+
+ Kontext "TabJava"
+ ClassPath.Click
+ sleep(1)
+ Kontext "JavaClassPath"
+ AddArchive.Click
+ sleep(1)
+ Kontext "GeneralFileDialog"
+ Dateiname.setText ConvertPath(sClassPath)
+ Auswaehlen.Click
+ sleep(1)
+ '/// if the class file allready exists a messages box pops up
+ Kontext "MessageBox"
+ if ( MessageBox.exists(3) ) then
+ MessageBox.OK
+ end if
+
+ Kontext "JavaClassPath"
+ JavaClassPath.OK
+
+ Kontext "MessageBox"
+ if ( MessageBox.exists(3) ) then
+ MessageBox.OK
+ end if
+
+ Kontext "OptionenDlg"
+ OptionenDlg.OK
+
+ call hCloseDocument
+
+end function
+
+'-------------------------------------------------------------------------
+
+function hGetInstalledDatabaseDrivers( dbDriverList() as string ) as integer
+
+ ' This function returns the number of currently installed database drivers.
+ ' Additionally it fills a given list (which should be large enough to hold
+ ' the names of all installed drivers) with the url and makes the list
+ ' compatible to the listfunctions (which places the list size in element 0)
+ ' The list is platform dependent and might be locale dependent
+ ' Note that some drivers (like e.g. HSQL Database Engine) do *not* show up
+ ' in the Database Wizards listbox!
+
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue
+ dim xViewRoot as object
+ dim aElements() as string
+ dim iCurrentDriver as integer
+ dim iDriverCount as integer
+
+ const CFN = "dbaccess::tools::dbcreatetools.inc::hGetInstalledDatabaseDrivers(): "
+
+ ' Path to the node, searches all files below "Drivers" for "Installed"
+ aPropertyValue( 0 ).Name = "nodepath"
+ aPropertyValue( 0 ).Value = "org.openoffice.Office.DataAccess.Drivers/Installed"
+
+ ' Connect to remote UNO
+ oUnoOfficeConnection = hGetUnoService( TRUE )
+
+ if ( isNull( oUnoOfficeConnection )) then
+ warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
+ hGetInstalledDatabaseDrivers() = 0
+ else
+ ' Get a configuration provider
+ oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" )
+
+ ' Get access
+ xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() )
+ aElements() = xViewRoot.getElementNames()
+
+ iDriverCount = ubound( aElements() )
+ dbDriverList( 0 ) = iDriverCount
+ for iCurrentDriver = 1 to iDriverCount
+ dbDriverList( iCurrentDriver ) = aElements( iCurrentDriver )
+ next iCurrentDriver
+
+ endif
+
+ if ( GVERBOSE ) then
+ printlog( CFN & "Returning " & iDriverCount & " drivers" )
+ endif
+
+ hGetInstalledDatabaseDrivers() = iDriverCount
+
+end function
+
+'-------------------------------------------------------------------------
+
+function hGetDatabaseDisplayName( dbDriverURL as string ) as string
+
+ ' The xcu files (based on dev300m47) hold following driver definitions
+ ' which are used as parameter to this function. You get a plain text
+ ' localized driver name as returnvalue which can be used directly to select
+ ' a driver in the Database Wizard.
+
+ ' adabas.xcu: "sdbc:adabas:*"
+ ' calc.xcu: "sdbc:calc:*"
+ ' dbase.xcu: "sdbc:dbase:*"
+ ' evoab.xcu: "sdbc:address:evolution:ldap"
+ ' evoab.xcu: "sdbc:address:evolution:groupwise"
+ ' flat.xcu: "sdbc:flat:*"
+ ' ado.xcu: "sdbc:ado:*"
+ ' hsqldb.xcu: "sdbc:embedded:hsqldb"
+ ' kab.xcu: "sdbc:address:kab"
+ ' mozab.xcu: "sdbc:address:outlook"
+ ' mozab.xcu: "sdbc:address:outlookexp"
+ ' mozab.xcu: "sdbc:address:mozilla:"
+ ' mozab.xcu: "sdbc:address:thunderbird:"
+ ' mozab.xcu: "sdbc:address:ldap:*"
+ ' mysql.xcu: "sdbc:mysql:jdbc:*"
+ ' mysql.xcu: "sdbc:mysql:odbc:*"
+ ' odbc.xcu: "sdbc:odbc:*"
+ ' jdbc.xcu: "jdbc:*"
+ ' jdbc.xcu: "jdbc:oracle:thin:*"
+ ' mysql.xcu: "sdbc:mysql:jdbc:*"
+
+
+ ' Note that some drivers (like e.g. HSQL Database Engine) do *not* show up
+ ' in the Database Wizards listbox!
+
+
+ dim oUnoOfficeConnection as object
+ dim oUnoConfigurationAccess as object
+ dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue
+ dim oConfig as object
+ dim oDriver as object
+ dim sDatabaseName as string
+
+ const CFN = "dbaccess::tools::dbcreatetools.inc::hGetDatabaseDisplayName(): "
+
+ ' Path to the node, searches all files below "Drivers" for "Installed"
+ aPropertyValue( 0 ).Name = "nodepath"
+ aPropertyValue( 0 ).Value = "org.openoffice.Office.DataAccess.Drivers/Installed/"
+
+ ' Connect to remote UNO
+ oUnoOfficeConnection = hGetUnoService( TRUE )
+
+ if ( isNull( oUnoOfficeConnection )) then
+ warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
+ sDatabaseName = ""
+ else
+ ' Get a configuration provider
+ oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" )
+
+ ' Get access
+ oConfig = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() )
+ try
+ oDriver = oConfig.getByName( dbDriverURL )
+ sDatabaseName = oDriver.getByName( "DriverTypeDisplayName" )
+ catch
+ warnlog( CFN & "Invalid driver or driver unsupported on this platform" )
+ sDatabaseName ""
+ endcatch
+
+ endif
+
+ if ( GVERBOSE ) then
+ printlog( CFN & "Database display string: " & sDatabaseName )
+ endif
+ hGetDataBaseDisplayName() = sDatabaseName
+
+end function
+'-------------------------------------------------------------------------
+function isDriverInstalled( dbDriverURL as string ) as string
+
+ ' This function return true or false if a driver for a given URL is installed
+
+ Dim myDriverList(20) as string
+ Dim i as integer
+ Dim sDriver as string
+ Dim breturn as boolean
+ breturn = false
+
+ const CFN = "dbaccess::tools::dbcreatetools.inc::isDriverInstalled(): "
+
+ if VERBOSE then
+ printlog CFN
+ printlog "url to search for : " + dbDriverURL
+ endif
+
+ hGetInstalledDatabaseDrivers( myDriverList() )
+
+ for i = 1 to ubound(myDriverList)
+ sDriver = myDriverList(i)
+ if VERBOSE then
+ printlog "found url : " + sDriver
+ endif
+ if sDriver = dbDriverURL then
+ breturn = true
+ endif
+ next
+
+ isDriverInstalled = breturn
+
+end function
+