merge the formfield patch from ooo-build
[ooovba.git] / testautomation / dbaccess / tools / dbcreatetools.inc
blobf3d5abd6c944ffe410f7f6fe0e1919f8a91466b9
1 'encoding UTF-8  Do not remove or change this line!
2 '**************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '* 
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: dbcreatetools.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsi $ $Date: 2008-06-16 07:43:45 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/************************************************************************
34 '* owner : marc.neumann@sun.com
36 '* short description : Library with function for creating all possible databases
38 '***************************************************************************************
40 ' #1 fCreateMySQL_ODBC_Datasource
41 ' #1 fCreateMySQL_JDBC_Datasource
42 ' #1 fCreateAdabasDatasource    
43 ' #1 fCreateLocalAdabasDatasource    
44 ' #1 fCreateJDBCDatasource     
45 ' #1 fCreateODBCDatasource
46 ' #1 fCreateDbaseDatasource
47 ' #1 fCreateADODatasource       
48 ' #1 fCreateTextDatasource      
49 ' #1 fCreateSpreadsheetDatasource
50 ' #1 fCreateLDAPAddressbookDatasource
51 ' #1 fCreateEvolutionAddressbookDatasource
52 ' #1 fCreateWindowsAddressbookDatasource
53 ' #1 fCreateOutlookAddressbookDatasource
54 ' #1 fCreateMozillaAddressbookDatasource
55 ' #1 fRegisterDatabaseFile
56 ' #1 fDeRegisterDatabaseFile
57 ' #1 fSetJDBCDriverFiles    
58 ' #1 getIdForDatabaseType
60 '\***********************************************************************************
61 function fCreateMySQL_ODBC_Datasource(sFileName, sOdbcDSN, sUser,optional sRegister) as boolean
62     '/// create a new MySQL database via ODBC file with the given filename 
63     '///+ and the given URL 
64     '/// <u>parameter:</u>
65     '/// <b>sFileName:</b> the file name for the database file
66     '/// <b>sOdbcDSN:</b> the name of the odbc datasource    
67     '/// <b>sUser:</b> the user for the connection
68     '/// <b>sPassword:</b> the password for the connection    
69     '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered
70     dim bOK as boolean
71         bOK = FALSE
73 ' delete the file
74     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
75         app.kill(ConvertPath(sFileName))
76     endif       
78     Kontext "DocumentWriter"
79         if (DocumentWriter.exists(1)) then        
80             DocumentWriter.UseMenu
81         else
82             Kontext "DocumentBackground"
83             DocumentBackground.UseMenu
84         endif  
85         hMenuSelectNr(1)
86         hMenuSelectNr(1)
87         hMenuSelectNr(5)
88         
89         sleep(4)    
91     Kontext "DatabaseWizard"    
92         ConnectToDatabase.Check
93         sleep(1)        
94         DatabaseType.select( hGetDatabaseDisplayName( "sdbc:mysql:odbc:*" ) )
95         sleep(1)
96         NextBtn.Click
97         sleep(1)
98         MySQLODBC.Check
99         NextBtn.Click
100         
101     Kontext "DatabaseWizard"    
102                 
103         '/// add the URL
104         printlog "add the URL"          
105         MySQLODBCDSName.setText "sdbc:mysql:odbc:" + sOdbcDSN
107     Kontext "DatabaseWizard"    
108         NextBtn.Click
110     Kontext "DatabaseWizard"
111         '/// add the user name 
112         printlog "add the user name"            
113         UserName.setText sUser
114         
115         '/// check the password required checkbox
116         printlog "check the password required checkbox"        
117         PasswordRequired.Check
118     
119     Kontext "DatabaseWizard"    
120         NextBtn.Click
121         
122     Kontext "DatabaseWizard"        
123         FinishBtn.Click
125     Kontext "SpeichernDlg"
126         Dateiname.setText ConvertPath(sFileName)    
127         Speichern.click
129     sleep(5)
130     
131     if ( IsMissing(sRegister) ) then
132             printlog "don't register datasource"
133     else        
134         printlog "register datasource with name " + sRegister        
135         call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
136     end if  
137     
138         bOK = true
139         if bOK = true then
140                 printlog "--- End of function - *** Succeed ***"
141         else
142         warnlog "--- End of function - *** Failed *** Data source was not created"
143         endif   
145     call fCloseDatabase(true)
146         
147         fCreateMySQL_ODBC_Datasource = bOK
148         
149 end function
150 '-------------------------------------------------------------------------
151 function fCreateMySQL_JDBC_Datasource(sFileName,sDatabaseName,sHost,sPort,sUser,optional sRegister) as boolean
152     '/// create a new MySQL database via JDBC file with the given filename 
153     '///+ and the given URL 
154     '/// <u>parameter:</u>
155     '/// <b>sFielName:</b> the file name for the database file
156     '/// <b>sDatabaseName:</b> the name of the mysql database
157     '/// <b>sHost:</b> the host where the mysql database is running
158     '/// <b>sPort:</b> the port where the mysql database is running
159     '/// <b>sUser:</b> the user for the connection        
160     '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered 
161     dim bOK as boolean
162         bOK = FALSE
164     ' delete the file
165     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
166         app.kill(ConvertPath(sFileName))
167     endif       
169     Kontext "DocumentWriter"
170         if (DocumentWriter.exists(1)) then        
171             DocumentWriter.UseMenu
172         else
173             Kontext "DocumentBackground"
174             DocumentBackground.UseMenu
175         endif  
176         hMenuSelectNr(1)
177         hMenuSelectNr(1)
178         hMenuSelectNr(5)
179         
180         sleep(4)    
182     Kontext "DatabaseWizard"    
183         ConnectToDatabase.Check
184         sleep(1)        
185         DatabaseType.select( hGetDatabaseDisplayName( "sdbc:mysql:jdbc:*" ) )
186         sleep(1)
187         NextBtn.Click
188         sleep(1)
189         MySQLJDBC.Check
190         NextBtn.Click
191         sleep(1)
192             MySQLDatabaseName.setText(sDatabaseName)
193         MySQLHostName.setText(sHost)
194         MySQLPort.setText(sPort)
195         
196         NextBtn.Click
197         sleep(1)
199         '/// add the user name 
200         printlog "add the user name"            
201         UserName.setText sUser
202         
203         '/// check the password required checkbox
204         printlog "check the password required checkbox"        
205         PasswordRequired.Check
206     
207     Kontext "DatabaseWizard"
208         FinishBtn.Click
209         
210     Kontext "SpeichernDlg"
211         Dateiname.setText ConvertPath(sFileName)    
212         Speichern.click
214         sleep(5)
215         
216     if ( IsMissing(sRegister) ) then
217             printlog "don't register datasource"
218     else        
219         printlog "register datasource with name " + sRegister        
220         call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
221     end if  
222     
223         bOK = true
224         if bOK = true then
225                 printlog "--- End of function - *** Succeed ***"
226         else
227         warnlog "--- End of function - *** Failed *** Data source was not created"
228         endif   
229         
230         fCreateMySQL_JDBC_Datasource = bOK
231     
232         sleep(1)
233     
234     call fCloseDatabase(true)
235         
236 end function
237 '-------------------------------------------------------------------------
238 function  fCreateAdabasDatasource(sFileName,sURL,sUser, optional sRegister) as boolean    
239     '/// create a new adabas database file with the given filename 
240     '///+ and the given URL
241     '/// <u>parameter:</u>
242     '/// <b>sFielName:</b> the file name for the database file
243     '/// <b>sURL:</b> the URL for the adabas database
244     '/// <b>sUser:</b> the user for connect    
245     '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
246         dim bOK as boolean
247         bOK = FALSE
248         
249     try
250     
251         ' delete the file
252         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
253             app.kill(ConvertPath(sFileName))
254         endif
255         
256         
257       
258         Kontext "DocumentWriter"
259         if (DocumentWriter.exists(1)) then        
260             DocumentWriter.UseMenu
261         else
262             Kontext "DocumentBackground"
263             DocumentBackground.UseMenu
264         endif  
265         hMenuSelectNr(1)
266         hMenuSelectNr(1)
267         hMenuSelectNr(5)
268         
269         sleep(4)
270             
271         Kontext "DatabaseWizard"    
272             ConnectToDatabase.Check
273             sleep(1)        
274             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:adabas:*" ) )
275             sleep(1)
276             NextBtn.Click
277             sleep(1)        
278             '/// insert the adabas database name
279             printlog "insert the adabas database name"
280             AdabasDBName.setText("sdbc:adabas:" + sURL)
281             sleep(1)
282             '/// click Next
283             printlog "click Next"
284             NextBtn.Click
285             sleep(1)
286             '/// insert the user
287             printlog "insert the user"          
288             UserName.setText sUser            
289             PasswordRequired.Check
290             sleep(1)
291             '/// click Next
292             printlog "click Next"
293             NextBtn.Click
294             sleep(1)
295             '/// click finish
296             printlog "click finish"
297             FinishBtn.Click
298             sleep(1)
299         Kontext "SpeichernDlg"
300             Dateiname.setText ConvertPath(sFileName)    
301             Speichern.click 
302             sleep(1)
303         
304         Kontext "MessageBox" 
305             if MessageBox.exists then
306                 MessageBox.yes
307             end if
308             
309         sleep(2)
310             
311         ' register the database
312         if ( IsMissing(sRegister) ) then
313             printlog "don't register datasource"
314         else        
315             printlog "register datasource with name " + sRegister        
316             call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
317         end if   
318         
319         bOK = true  
320         printlog "*** Succeed *** Data source was created"
321         
322         fCreateAdabasDatasource = bOK
323     
324         sleep(1)
325         call fCloseDatabase(true)
326         
327     catch
328             bOk = false
329         warnlog "*** Failed *** Data source was not created"
330                 
331         endcatch
332         
333 end function
334 '-------------------------------------------------------------------------
335 function  fCreateLocalAdabasDatasource(sFileName,sDatabaseName,sSuperUser,sSuperPassword, optional sRegister) as boolean    
336     '/// create a new adabas database file with the given filename 
337     '///+ and the given URL
338     '/// <u>parameter:</u>
339     '/// <b>sFielName:</b> the file name for the database file
340     '/// <b>sURL:</b> the URL for the adabas database
341     '/// <b>sUser:</b> the user for connect
342     '/// <b>sPassword:</b> the password for connect
343     '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
344         dim bOK as boolean
345         bOK = FALSE
346         
347     ' delete the file
348     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
349         app.kill(ConvertPath(sFileName))
350     endif
351     
352     'try
354         '/// --- Create new Adabas data source ---
355         printlog "--- Create new adabas data source ---"
356         Kontext "DocumentWriter"
357         if (DocumentWriter.exists(1)) then        
358             DocumentWriter.UseMenu
359         else
360             Kontext "DocumentBackground"
361             DocumentBackground.UseMenu
362         endif  
363         hMenuSelectNr(1)
364         hMenuSelectNr(1)
365         hMenuSelectNr(5)       
367         sleep(4)
369         Kontext "DatabaseWizard"    
370             ConnectToDatabase.Check
371             sleep(1)        
372             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:adabas:*" ) )
373             sleep(1)
374             NextBtn.Click
375             sleep(1)
378         Kontext "DatabaseWizard"    
379             AdabasBrowse.Click
380                 sleep(1)
381                 
382         Kontext "DataSourceSelection"
383             Create.Click
384                         sleep(1)
385                         
386         Kontext "CreateNewAdabasDatabase"
387             DatabaseName.setText sDatabaseName
388             Administrator.setText sSuperUser
389             AdminPasswordBtn.Click
390             sleep(1)
391             
392             
393         Kontext "PasswordDLG"
394             Password.setText sSuperPassword
395             PasswordConfirm.setText sSuperPassword
396             PasswordDLG.OK
397         
398         Kontext "CreateNewAdabasDatabase"
399             CreateNewAdabasDatabase.OK
400             sleep(10)
402         Kontext "DataSourceSelection"
403             DataSourceSelection.OK
404         
405         Kontext "DatabaseWizard"            
406             '/// click Next
407             printlog "click Next"
408             NextBtn.Click
409             sleep(1)            
410             '/// click Next
411             printlog "click Next"
412             NextBtn.Click
413             sleep(1)
414             '/// click finish
415             printlog "click finish"
416             FinishBtn.Click
417             sleep(1)
418         Kontext "SpeichernDlg"
419             Dateiname.setText ConvertPath(sFileName)    
420             Speichern.click 
421             
422         sleep(2)
423             
424         ' register the database
425         if ( IsMissing(sRegister) ) then
426             printlog "don't register datasource"
427         else        
428             printlog "register datasource with name " + sRegister        
429             call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
430         end if   
431         
432         bOK = true  
433         printlog "*** Succeed *** Data source was created"
435     'catch
436             bOk = false
437         warnlog "*** Failed *** Data source was not created"
438                 
439         'endcatch
440         
441     fCreateLocalAdabasDatasource = bOK
442     
443         sleep(1)
444     call fCloseDatabase(true)    
445         
446 end function
447 '-------------------------------------------------------------------------
448 function fCreateHSQLDatasource(sFileName, optional sRegister) as boolean
449     '/// create a new hsql database file with the given filename    
450     '/// <u>parameter:</u>
451     '/// <b>sFielName:</b> the file name for the database file
452     '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
453         dim bOK as boolean
454         bOK = FALSE
455         
456     ' delete the file
457     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
458         app.kill(ConvertPath(sFileName))
459     endif
460     
461     
462     try    
463         Kontext "DocumentWriter"
464         if (DocumentWriter.exists(1)) then        
465             DocumentWriter.UseMenu
466         else
467             Kontext "DocumentBackground"
468             DocumentBackground.UseMenu
469         endif  
470         hMenuSelectNr(1)
471         hMenuSelectNr(1)
472         hMenuSelectNr(5)
473         
474         sleep(10)
475             
476         Kontext "DatabaseWizard"    
477             CreateNewDatabase.Check
478             sleep(1)
479             NextBtn.Click
480             sleep(1)        
481             FinishBtn.Click
482             sleep(1)
483                           
484         Kontext "SpeichernDlg"
485             Dateiname.setText ConvertPath(sFileName) 
486             Speichern.click 
487             sleep(10)
488             
489         Kontext "MessageBox" 
490             if MessageBox.exists then
491                 MessageBox.yes
492             end if
493             
494         sleep(5)
496         
497         if ( IsMissing(sRegister) ) then
498                 printlog "don't register datasource"
499         else        
500             printlog "register datasource with name " + sRegister        
501             call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
502         end if
504         call fCloseDatabase(true)  
505         
506         bOK = true
507     catch
508         bOK = false
509     endcatch
510         
511         if bOK = true then
512                 printlog "--- End of function - *** Succeed ***"
513         else
514         warnlog "--- End of function - *** Failed *** Data source was not created"
515         endif   
516         
517         fCreateHSQLDatasource = bOK
518     
519         sleep(1)
520     
521 end function
522 '-------------------------------------------------------------------------
523 function fCreateJDBCDatasource(sFileName,sDriverClass,sURL,sClassPath,sUserName, optional sRegister) as boolean     
524     'TODO:
525         
526     'ExitRestartTheOffice ' because the change the classpath wich is only used after a restart
527     'Printlog "restart the office to make the classpath work"
528     
529     '/// create a new JDBC database file with the given filename 
530     '///+ and the given URL 
531     '/// <u>parameter:</u>
532     '/// <b>sFileName:</b> the file name for the database file
533     '/// <b>sDatabaseName:</b> the name of the mysql database
534     '/// <b>sHost:</b> the host where the mysql database is running
535     '/// <b>sPort:</b> the port where the mysql database is running
536     '/// <b>sUser:</b> the user for the connection        
537     '/// <b><i>optional</i> sRegister:</b> the name under which the database is be registered 
538     dim bOK as boolean
539         bOK = FALSE
540         
541     call fSetJDBCDriverFiles(sClassPath)
542     
543     ' delete the file
544     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
545         app.kill(ConvertPath(sFileName))
546     endif  
547     
548     FileOpen "FileName", "private:factory/sdatabase?Interactive" , "FrameName", "_blank" , "SynchronMode" ,True
549         
550     Kontext "SpeichernDlg"
551         Dateiname.setText ConvertPath(sFileName)    
552         Speichern.click
553         sleep(1)
554         
555     Kontext "MessageBox" 
556         if MessageBox.exists then
557             MessageBox.yes
558         end if
559         
560     sleep(5)
561         
562         Kontext "TabGeneral"    
563                 DatabaseType.Select "JDBC"
564                 sleep(1)
565     
566     Kontext "ConnectionType"    
567         NextBtn.Click
568         
569     Kontext "TabConnection"    
570                 
571         '/// add the URL
572         printlog "add the URL"          
573         ConnectURL.setText "jdbc:" + sURL
574         
575         '/// add the user name 
576         printlog "add the user name"            
577         UserName.setText sUserName
578         
579         '/// check the password required checkbox
580         printlog "check the password required checkbox"        
581         PasswordRequired.Check
582     
583         JDBCDriverClass.setText sDriverClass
584         
585     
586     Kontext "ConnectionType"        
587         CreateBtn.Click
588         sleep(5)
589         
590     if ( IsMissing(sRegister) ) then
591             printlog "don't register datasource"
592     else        
593         printlog "register datasource with name " + sRegister        
594         call fRegisterDatabaseFile(ConvertPath(sFilename),sRegister)
595     end if  
596     
597         bOK = true
598         if bOK = true then
599                 printlog "--- End of function - *** Succeed ***"
600         else
601         warnlog "--- End of function - *** Failed *** Data source was not created"
602         endif   
603         
604         fCreateJDBCDatasource = bOK
605     
606         sleep(1)
607     
608     call fCloseDatabase(true)    
609     
610 end function       
611 '-------------------------------------------------------------------------
612 function fCreateODBCDatasource(sDSName,sUser,sPassword) as boolean
613     
614     qaerrorlog "not implemented yet"
615     fCreateODBCDatasource = false       
617 end function
618 '-------------------------------------------------------------------------
619 function  fCreateDbaseDatasource(sFileName,sURL, optional sRegister) as boolean
620     '/// create a new dbase database file with the given filename 
621     '///+ and the given URL as dbase path
622     '/// <u>parameter:</u>
623     '/// <b>sFielName:</b> the file name for the database file
624     '/// <b>sURL:</b> the dbase path for the database
625     '/// <b><i>optional</i> bRegister:</b> if true the register the database with the name tt_dBase 
626     dim bOK as boolean
627         bOK = FALSE
628         
629     ' delete the file
630     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
631         app.kill(ConvertPath(sFileName))
632     endif    
633     
634     Kontext "DocumentWriter"
635         if (DocumentWriter.exists(1)) then        
636             DocumentWriter.UseMenu
637         else
638             Kontext "DocumentBackground"
639             DocumentBackground.UseMenu
640         endif    
641     hMenuSelectNr(1)
642     hMenuSelectNr(1)
643     hMenuSelectNr(5)
644     
645     sleep(4)
646         
647     Kontext "DatabaseWizard"    
648         ConnectToDatabase.Check
649         sleep(1)        
650         DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:dbase:*" ) )
651         sleep(1)
652         NextBtn.Click
653         sleep(1)
654         dBasePath.setText "sdbc:dbase:" + ConvertPath(sURL)
655         sleep(1)
656         FinishBtn.Click    
657         
658     sleep(1)
659       
660     Kontext "SpeichernDlg"
661         Dateiname.setText ConvertPath(sFileName)    
662         Speichern.click     
663            
664     sleep(2)
665    
666     if ( IsMissing(sRegister) ) then
667         printlog "don't register datasource"
668     else        
669         printlog "register datasource with name " + sRegister
670         call fRegisterDatabaseFile(sFileName,sRegister)
671     end if    
672         
673         bOK = true
674         'if bOK = true then
675     '           printlog "--- End of function - *** Succeed ***"'
676         'else
677     '   warnlog "--- End of function - *** Failed *** Data source was not created"
678         'endif  
679         
680         fCreatedBaseDatasource = bOK
681     
682         sleep(1)    
683     
684     call fClosedatabase(true)
685     
686 end function
687 '-------------------------------------------------------------------------
688 function fCreateADODatasource(sFileName,sURL,optional sRegister) as boolean     
689     '/// create a new ADO database file with the given filename 
690     '///+ and the given URL as dbase path
691     '/// <u>parameter:</u>
692     '/// <b>sFielName:</b> the file name for the database file
693     '/// <b>sURL:</b> the ADO url
694     '/// <b><i>optional</i> sRegister:</b> if set, the database is registed under the given name 
695     dim bOK as boolean
696         bOK = FALSE
697         
698     ' delete the file
699     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
700         app.kill(ConvertPath(sFileName))
701     endif    
702     
703     Kontext "DocumentWriter"
704         if (DocumentWriter.exists(1)) then        
705             DocumentWriter.UseMenu
706         else
707             Kontext "DocumentBackground"
708             DocumentBackground.UseMenu
709         endif  
710         hMenuSelectNr(1)
711         hMenuSelectNr(1)
712         hMenuSelectNr(5)
713     
714     sleep(4)
715     Kontext "DatabaseWizard"    
716         ConnectToDatabase.Check
717         sleep(1)        
718         DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:ado:*" ) )
719         sleep(1)
720         NextBtn.Click
721         sleep(1)
722         '/// add the URL
723         printlog "add the URL " + sURL          
724         AdoURL.setText "sdbc:ado:" + sURL        
725         sleep(1)
726         FinishBtn.Click
727         sleep(1)
728     
729     Kontext "SpeichernDlg"
730         Dateiname.setText ConvertPath(sFileName)    
731         Speichern.click
732         
733     sleep(5)
734    
735     if ( IsMissing(sRegister) ) then
736         printlog "don't register datasource"
737     else        
738         printlog "register datasource with name " + sRegister
739         call fRegisterDatabaseFile(sFileName,sRegister)
740     end if    
741         
742         bOK = true
743         if bOK = true then
744                 printlog "--- End of function - *** Succeed ***"
745         else
746         warnlog "--- End of function - *** Failed *** Data source was not created"
747         endif   
748         
749         fCreateADODatasource = bOK
750     
751         sleep(1)    
752     
753     call fClosedatabase(true)    
755 end function
756 '-------------------------------------------------------------------------
757 function fCreateTextDatasource(sFileName,sURL, optional sRegister) as boolean   
758     '/// create a new text database file with the given filename 
759     '///+ and the given URL as dbase path
760     '/// <u>parameter:</u>
761     '/// <b>sFielName:</b> the file name for the database file
762     '/// <b>sURL:</b> the Text url
763     '/// <b><i>optional</i> sRegister:</b> if set, the database is registed under the given name    
764     Dim bOK as boolean          
765         bOK = false     
766         
767     '/// --- Create new Text data source ---
768     printlog "--- Create new " + sFileName + " data source ---"
769         printlog "--- with the URL " + sURL + " ---"
770     
771     Kontext "DocumentWriter"
772         if (DocumentWriter.exists(1)) then        
773             DocumentWriter.UseMenu
774         else
775             Kontext "DocumentBackground"
776             DocumentBackground.UseMenu
777         endif        
778     hMenuSelectNr(1)
779     hMenuSelectNr(1)
780     hMenuSelectNr(5)
781     
782     sleep(4)
783         
784     Kontext "DatabaseWizard"    
785         ConnectToDatabase.Check
786         sleep(1)        
787         DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:flat:*" ) )
788         sleep(1)
789         NextBtn.Click
790         sleep(1)
791         TextPath.setText "sdbc:flat:" + ConvertPath(sURL)
792         sleep(1)
793         FinishBtn.Click
794         sleep(1)
795         
796     Kontext "SpeichernDlg"
797         Dateiname.setText ConvertPath(sFileName)    
798         Speichern.click
799         sleep(1)
800         
801     Kontext "MessageBox" 
802         if MessageBox.exists then
803             MessageBox.yes
804         end if
805         
806     sleep(5)
808     if ( IsMissing(sRegister) ) then
809         printlog "don't register datasource"
810     else        
811         printlog "register datasource with name " + sRegister
812         call fRegisterDatabaseFile(sFileName,sRegister)
813     end if    
814      
815         
816         bOK = true
817         if bOK = true then
818                 printlog "--- End of function - *** Succeed ***"
819         else
820         warnlog "--- End of function - *** Failed *** Data source was not created"
821         endif   
822         
823         fCreateTextDatasource = bOK
824     
825         sleep(1)    
826     
827     call fClosedatabase(true)    
828   
829 end function
830 '-------------------------------------------------------------------------
831 function fCreateSpreadsheetDatasource(sFileName,sURL, optional sRegister) as boolean
832     '/// create a new spreadsheet database file with the given filename 
833     '///+ and the given URL as dbase path
834     '/// <u>parameter:</u>
835     '/// <b>sFielName:</b> the file name for the database file
836     '/// <b>sURL:</b> the spreadsheet file name
837     '/// <b><i>optional</i> bRegister:</b> if true the register the database with the given name 
838     dim bOK as boolean
839         bOK = FALSE
840         
841     ' delete the file
842     if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
843         app.kill(ConvertPath(sFileName))
844     endif    
845     
846     Kontext "DocumentWriter"
847         if (DocumentWriter.exists(1)) then        
848             DocumentWriter.UseMenu
849         else
850             Kontext "DocumentBackground"
851             DocumentBackground.UseMenu
852         endif        
853     hMenuSelectNr(1)
854     hMenuSelectNr(1)
855     hMenuSelectNr(5)
856         
857     sleep(4)
858             
859     Kontext "DatabaseWizard"    
860         ConnectToDatabase.Check
861         sleep(1)        
862         DatabaseType.Select (hGetDatabaseDisplayName( "sdbc:calc:*" ))
863         sleep(1)
864         NextBtn.Click
865         sleep(1)
866         '/// add the URL
867         printlog "add the URL"          
868         SpreadsheetPath.setText "sdbc:calc:" + ConvertPath(sURL)
869         sleep(1)
870         '/// click finish
871         printlog "click finish"
872         FinishBtn.Click
873         sleep(1)
874     Kontext "SpeichernDlg"
875         Dateiname.setText ConvertPath(sFileName)    
876         Speichern.click 
877         sleep(1)
878     
879     Kontext "MessageBox" 
880         if MessageBox.exists then
881             MessageBox.yes
882         end if
883         
884     sleep(2)
885    
886     if ( IsMissing(sRegister) ) then
887         printlog "don't register datasource"
888     else        
889         printlog "register datasource with name " + sRegister
890         call fRegisterDatabaseFile(sFileName,sRegister)
891     end if    
892         
893         bOK = true
894         if bOK = true then
895                 printlog "--- End of function - *** Succeed ***"
896         else
897         warnlog "--- End of function - *** Failed *** Data source was not created"
898         endif   
899         
900         fCreateSpreadsheetDatasource = bOK
901     
902         sleep(1)    
903     
904     call fClosedatabase(true)    
906 end function
907 '-------------------------------------------------------------------------
908 function fCreateLDAPAddressbookDatasource(sFileName,sHostName,sBaseDN,sPortNr,optional sRegister) as boolean
909     '/// create a new LDAP Addressbook database with the given filename     
910     '/// <u>parameter:</u>
911     '/// <b>sFileName:</b> the file name for the database file
912     '/// <b><i>optional</i> sRegister:</b> if true then register the database
913     dim bOK as boolean
914         bOK = FALSE
915 '       try
916     
917         ' delete the file
918         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
919             app.kill(ConvertPath(sFileName))
920         endif
921     
922         
923         Kontext "DocumentWriter"
924             if (DocumentWriter.exists(1)) then        
925                 DocumentWriter.UseMenu
926             else
927                 Kontext "DocumentBackground"
928                     DocumentBackground.UseMenu
929             endif
930             hMenuSelectNr(1)
931             hMenuSelectNr(1)
932             hMenuSelectNr(5)
933     
934         sleep(4)
935         
936         Kontext "DatabaseWizard"    
937             ConnectToDatabase.Check
938             sleep(1)        
939             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:ldap:*" ) )
940             sleep(1)
941             NextBtn.Click
942             sleep(1)
943             LDAPHostName.setText sHostName
944             sleep(1)
945             BaseDN.setText(sBaseDN)
946             sleep(1)
947             FinishBtn.Click
948             sleep(1)
949         
950     Kontext "SpeichernDlg"
951         Dateiname.setText ConvertPath(sFileName)    
952         Speichern.click
953         sleep(1)
954         
955     Kontext "MessageBox" 
956         if MessageBox.exists then
957             MessageBox.yes
958         end if
959         
960       
961         sleep(5)
962    
963         if ( IsMissing(sRegister) ) then
964             printlog "don't register datasource"
965         else        
966             printlog "register datasource with name " + sRegister
967             call fRegisterDatabaseFile(sFileName,sRegister)
968         end if
969         printlog "*** Succeed *** Data source was created"            
970         bOK = true
971 '       catch
972 '       warnlog "*** Failed *** Data source was not created"
973 '        bOK = false
974 '    endcatch   
975         
976         fCreateLDAPAddressbookDatasource = bOK
977     
978         sleep(1)    
979     
980     call fClosedatabase(true)
981     
982 end function
983 '-------------------------------------------------------------------------
984 function fCreateEvolutionAddressbookDatasource(sFileName, optional sRegister) as boolean
985     '/// create a new Evolution Addressbook database with the given filename     
986     '/// <u>parameter:</u> 
987     '/// <b>sFielName:</b> the file name for the database file
988     '/// <b><i>optional</i> sRegister:</b> if true then register the database
989     dim bOK as boolean
990         bOK = FALSE
991         try
992     
993         ' delete the file
994         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
995             app.kill(ConvertPath(sFileName))
996         endif
997     
998         Kontext "DocumentWriter"
999         if (DocumentWriter.exists(1)) then        
1000             DocumentWriter.UseMenu
1001         else
1002             Kontext "DocumentBackground"
1003             DocumentBackground.UseMenu
1004         endif  
1005         hMenuSelectNr(1)
1006         hMenuSelectNr(1)
1007         hMenuSelectNr(5)
1008         
1009         sleep(4)
1010             
1011         Kontext "DatabaseWizard"    
1012             ConnectToDatabase.Check
1013             sleep(1)        
1014             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:evolution:ldap" ) )
1015             sleep(1)
1016             NextBtn.Click
1017             sleep(1)
1018             '/// click finish
1019             printlog "click finish"
1020             FinishBtn.Click
1021             sleep(1)
1022         Kontext "SpeichernDlg"
1023             Dateiname.setText ConvertPath(sFileName)    
1024             Speichern.click 
1025             sleep(1)
1026         
1027         Kontext "MessageBox" 
1028             if MessageBox.exists then
1029                 MessageBox.yes
1030             end if
1031             
1032         sleep(2)
1033    
1034         if ( IsMissing(sRegister) ) then
1035             printlog "don't register datasource"
1036         else        
1037             printlog "register datasource with name " + sRegister
1038             call fRegisterDatabaseFile(sFileName,sRegister)
1039         end if
1041         call fClosedatabase(true)
1042    
1043         printlog "*** Succeed *** Data source was created"            
1044         bOK = true
1045         catch
1046         warnlog "*** Failed *** Data source was not created"
1047         bOK = false
1048     endcatch    
1049         
1050         fCreateEvolutionAddressbookDatasource = bOK
1051     
1052         sleep(1)
1053     
1054 end function
1055 '-------------------------------------------------------------------------
1056 function fCreateKDEAddressbookDatasource(sFileName , optional sRegister) as boolean
1057     '/// create a new KDE Addressbook database with the given filename     
1058     '/// <u>parameter:</u>
1059     '/// <b>sFileName:</b> the file name for the database file
1060     '/// <b><i>optional</i> sRegister:</b> if true then register the database
1061     dim bOK as boolean
1062         bOK = FALSE
1063         try
1064     
1065         ' delete the file
1066         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
1067             app.kill(ConvertPath(sFileName))
1068         endif
1069     
1070         Kontext "DocumentWriter"
1071         if (DocumentWriter.exists(1)) then        
1072             DocumentWriter.UseMenu
1073         else
1074             Kontext "DocumentBackground"
1075             DocumentBackground.UseMenu
1076         endif  
1077         hMenuSelectNr(1)
1078         hMenuSelectNr(1)
1079         hMenuSelectNr(5)
1080         
1081         sleep(4)
1082             
1083         Kontext "DatabaseWizard"    
1084             ConnectToDatabase.Check
1085             sleep(1)        
1086             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:kab" ) )
1087             sleep(1)
1088             NextBtn.Click
1089             sleep(1)
1090             '/// click finish
1091             printlog "click finish"
1092             FinishBtn.Click
1093             sleep(1)
1094         Kontext "SpeichernDlg"
1095             Dateiname.setText ConvertPath(sFileName)    
1096             Speichern.click 
1097             sleep(1)
1098         
1099         Kontext "MessageBox" 
1100             if MessageBox.exists then
1101                 MessageBox.yes
1102             end if
1103             
1104         sleep(2)
1105    
1106         if ( IsMissing(sRegister) ) then
1107             printlog "don't register datasource"
1108         else        
1109             printlog "register datasource with name " + sRegister
1110             call fRegisterDatabaseFile(sFileName,sRegister)
1111         end if
1113         call fClosedatabase(true)
1115         printlog "*** Succeed *** Data source was created"            
1116         bOK = true
1117         catch
1118         warnlog "*** Failed *** Data source was not created"
1119         bOK = false
1120     endcatch    
1121         
1122         fCreateKDEAddressbookDatasource = bOK
1123     
1124         sleep(1)
1125     
1126 end function
1127 '-------------------------------------------------------------------------
1128 function fCreateWindowsAddressbookDatasource(sFileName , optional sRegister) as boolean
1129     '/// create a new Windows Addressbook database with the given filename     
1130     '/// <u>parameter:</u>
1131     '/// <b>sFileName:</b> the file name for the database file
1132     '/// <b><i>optional</i> sRegister:</b> if true then register the database
1133     dim bOK as boolean
1134         bOK = FALSE
1135         try
1136     
1137         ' delete the file
1138         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
1139             app.kill(ConvertPath(sFileName))
1140         endif
1141     
1142         Kontext "DocumentWriter"
1143         if (DocumentWriter.exists(1)) then        
1144             DocumentWriter.UseMenu
1145         else
1146             Kontext "DocumentBackground"
1147             DocumentBackground.UseMenu
1148         endif  
1149         hMenuSelectNr(1)
1150         hMenuSelectNr(1)
1151         hMenuSelectNr(5)
1152         
1153         sleep(4)
1154             
1155         Kontext "DatabaseWizard"    
1156             ConnectToDatabase.Check
1157             sleep(1)        
1158             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:outlookexp" ) )
1159             sleep(1)
1160             NextBtn.Click
1161             sleep(1)
1162             '/// click finish
1163             printlog "click finish"
1164             FinishBtn.Click
1165             sleep(1)
1166         Kontext "SpeichernDlg"
1167             Dateiname.setText ConvertPath(sFileName)    
1168             Speichern.click 
1169             sleep(1)
1170         
1171         Kontext "MessageBox" 
1172             if MessageBox.exists then
1173                 MessageBox.yes
1174             end if
1175             
1176         sleep(2)
1177    
1178         if ( IsMissing(sRegister) ) then
1179             printlog "don't register datasource"
1180         else        
1181             printlog "register datasource with name " + sRegister
1182             call fRegisterDatabaseFile(sFileName,sRegister)
1183         end if
1185         call fClosedatabase(true)
1187         printlog "*** Succeed *** Data source was created"            
1188         bOK = true
1189         catch
1190         warnlog "*** Failed *** Data source was not created"
1191         bOK = false
1192     endcatch    
1193         
1194         fCreateWindowsAddressbookDatasource = bOK
1195     
1196         sleep(1)
1197     
1198 end function
1199 '-------------------------------------------------------------------------
1200 function fCreateOutlookAddressbookDatasource(sFileName, optional sRegister) as boolean
1201     '/// create a new Outlook Addressbook database with the given filename     
1202     '/// <u>parameter:</u>
1203     '/// <b>sFileName:</b> the file name for the database file
1204     '/// <b><i>optional</i> sRegister:</b> if true then register the database
1205     dim bOK as boolean
1206         bOK = FALSE
1207         try
1208     
1209         ' delete the file
1210         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
1211             app.kill(ConvertPath(sFileName))
1212         endif
1213     
1214         Kontext "DocumentWriter"
1215         if (DocumentWriter.exists(1)) then        
1216             DocumentWriter.UseMenu
1217         else
1218             Kontext "DocumentBackground"
1219             DocumentBackground.UseMenu
1220         endif  
1221         hMenuSelectNr(1)
1222         hMenuSelectNr(1)
1223         hMenuSelectNr(5)
1224         
1225         sleep(4)
1226             
1227         Kontext "DatabaseWizard"    
1228             ConnectToDatabase.Check
1229             sleep(1)        
1230             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:outlook" ) )
1231             sleep(1)
1232             NextBtn.Click
1233             sleep(1)
1234             '/// click finish
1235             printlog "click finish"
1236             FinishBtn.Click
1237             sleep(1)
1238         Kontext "SpeichernDlg"
1239             Dateiname.setText ConvertPath(sFileName)    
1240             Speichern.click 
1241             sleep(1)
1242         
1243         Kontext "MessageBox" 
1244             if MessageBox.exists then
1245                 MessageBox.yes
1246             end if
1247             
1248         sleep(2)
1249    
1250         if ( IsMissing(sRegister) ) then
1251             printlog "don't register datasource"
1252         else        
1253             printlog "register datasource with name " + sRegister
1254             call fRegisterDatabaseFile(sFileName,sRegister)
1255         end if
1257         call fClosedatabase(true)
1259         printlog "*** Succeed *** Data source was created"            
1260         bOK = true
1261         catch
1262         warnlog "*** Failed *** Data source was not created"
1263         bOK = false
1264     endcatch    
1265         
1266         fCreateOutlookAddressbookDatasource = bOK
1267     
1268         sleep(1)
1270 end function
1271 '-------------------------------------------------------------------------   
1272 function fCreateMozillaAddressbookDatasource(sFileName, optional sRegister) as boolean
1273     '/// create a new mozilla addressbook database file with the given filename     
1274     '/// <u>parameter:</u>
1275     '/// <b>sFielName:</b> the file name for the database file    
1276     '/// <b><i>optional</i> sRegister:</b> the name under which the database is registered
1278     dim bOK as boolean
1279         bOK = FALSE
1280         try    
1281         ' delete the file
1282         if ( app.Dir( ConvertPath(sFileName) ) ) <> "" then
1283             app.kill(ConvertPath(sFileName))
1284         endif
1285     
1286         Kontext "DocumentWriter"        
1287             if (DocumentWriter.exists(1)) then        
1288                 DocumentWriter.UseMenu
1289             else
1290                 Kontext "DocumentBackground"
1291                     DocumentBackground.UseMenu
1292             endif
1293         hMenuSelectNr(1)
1294         hMenuSelectNr(1)
1295         hMenuSelectNr(5)
1296         
1297         sleep(4)
1298             
1299         Kontext "DatabaseWizard"    
1300             ConnectToDatabase.Check
1301             sleep(1)        
1302             DatabaseType.select ( hGetDatabaseDisplayName( "sdbc:address:mozilla:" ) )
1303             sleep(1)
1304             NextBtn.Click
1305             sleep(1)
1306             '/// click finish
1307             printlog "click finish"
1308             FinishBtn.Click
1309             sleep(1)
1310         Kontext "SpeichernDlg"
1311             Dateiname.setText ConvertPath(sFileName)    
1312             Speichern.click 
1313             sleep(1)
1314         
1315         Kontext "MessageBox" 
1316             if MessageBox.exists then
1317                 MessageBox.yes
1318             end if
1319             
1320         sleep(2)
1321    
1322         if ( IsMissing(sRegister) ) then
1323             printlog "don't register datasource"
1324         else        
1325             printlog "register datasource with name " + sRegister
1326             call fRegisterDatabaseFile(sFileName,sRegister)
1327         end if
1328         printlog "*** Succeed *** Data source was created"            
1329         bOK = true
1331         call fClosedatabase(true)
1333         catch
1334         qaerrorlog "*** Failed *** Data source was not created"
1335         bOK = false
1336     endcatch    
1337         
1338         fCreateMozillaAddressbookDatasource = bOK
1339     
1340         sleep(1)  
1341     
1342 end function
1343 '--------------------------------------------------------------------
1344 function fRegisterDatabaseFile( sFileName, sName)
1345     '/// register a database     
1346     '/// <u>parameter:</u>
1347     '/// <b>sFielName:</b> the file name for the database file
1348     '/// <b>sName:</b> The name under which the database is registered   
1349     
1350     dim i as integer
1351     
1352     ToolsOptions
1353     
1354     call hToolsOptions ( "Datasources", "Databases" )
1355     
1356     '/// remove registration if exists
1357     
1358     Kontext "TabRegisteredDatabase"
1359         for i = 1 to RegisteredDatabases.GetItemCount
1360             RegisteredDatabases.select i
1361             if RegisteredDatabases.getSeltext() = sName then
1362                             DeleteBtn.Click     
1363                 Kontext "Active"
1364                     Active.yes
1365                 exit for
1366             endif    
1367         next
1368         
1369     
1370     
1371     Kontext "TabRegisteredDatabase"
1372         NewBtn.Click
1373     sleep(1)
1374     Kontext "CreateDatabaseLink"
1375         DatabaseFile.setText(sFileName)    
1376         RegisteredName.setText(sName)
1377         CreateDatabaseLink.OK
1378         
1379     sleep(1)
1380     Kontext "OptionenDlg"
1381         OptionenDlg.OK
1383 end function
1384 '--------------------------------------------------------------------
1385 function fDeRegisterDatabaseFile( sName)
1386     '/// deregister a database     
1387     '/// <u>parameter:</u>    
1388     '/// <b>sName:</b> The registered name which should be deregistered    
1389     dim i as integer
1390     
1391     ToolsOptions
1392     
1393     call hToolsOptions ( "Datasources", "Databases" )
1394     
1395     '/// remove registration for the database
1396     printlog "remove registration for the database " + sName
1397     
1398     Kontext "TabRegisteredDatabase"
1399         for i = 1 to RegisteredDatabases.GetItemCount
1400             RegisteredDatabases.select i
1401             if RegisteredDatabases.getSeltext() = sName then
1402                             DeleteBtn.Click     
1403                 exit for
1404             endif    
1405         next
1406         
1407    try
1408     Kontext "Active"
1409         Active.yes
1410    catch
1411    
1412    endcatch 
1413     sleep(1)
1414     Kontext "OptionenDlg"
1415         OptionenDlg.OK
1417 end function
1418 '-------------------------------------------------------------------------
1419 function fSetJDBCDriverFiles(sClassPath) as boolean    
1420     '/// set the java classpath     
1421     '/// <u>parameter:</u>    
1422     '/// <b>sClassPath:</b> The Classpath 
1423     
1424     Dim x_DriverInstall as boolean
1425     x_DriverInstall = FALSE
1427     call hNewDocument
1428     printlog "insert classpath: " + sClassPath
1429     ToolsOptions
1430     call hToolsOptions ( "StarOffice", "JAVA" )
1432     Kontext "TabJava"    
1433         ClassPath.Click
1434         sleep(1)
1435     Kontext "JavaClassPath"
1436         AddArchive.Click     
1437         sleep(1)
1438     Kontext "GeneralFileDialog"
1439         Dateiname.setText ConvertPath(sClassPath)    
1440         Auswaehlen.Click
1441         sleep(1)
1442     '/// if the class file allready exists a messages box pops up
1443     Kontext "MessageBox"
1444         if ( MessageBox.exists(3) ) then
1445                 MessageBox.OK
1446                 end if
1448     Kontext "JavaClassPath"
1449         JavaClassPath.OK    
1450         
1451     Kontext "MessageBox"
1452         if ( MessageBox.exists(3) ) then
1453                 MessageBox.OK
1454                 end if
1455         
1456     Kontext "OptionenDlg"
1457         OptionenDlg.OK
1458             
1459     call hCloseDocument
1460     
1461 end function
1462 '-------------------------------------------------------------------------
1463 private const VERBOSE = false
1465 function hGetInstalledDatabaseDrivers( dbDriverList() as string ) as integer
1467     ' This function returns the number of currently installed database drivers.
1468     ' Additionally it fills a given list (which should be large enough to hold
1469     ' the names of all installed drivers) with the names and makes the list 
1470     ' compatible to the listfunctions (which places the list size in element 0)
1471     ' The list is platform dependent and might be locale dependent
1472     ' Note that some drivers (like e.g. HSQL Database Engine) do *not* show up
1473     ' in the Database Wizards listbox!
1475     dim oUnoOfficeConnection as object
1476     dim oUnoConfigurationAccess as object
1477     dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue
1478     dim xViewRoot as object
1479     dim aElements() as string
1480     dim iCurrentDriver as integer
1481     dim iDriverCount as integer
1483     const CFN = "global::tools::includes::optional::t_database.inc::hGetInstalledDatabaseDrivers(): "
1484     
1485     ' Path to the node, searches all files below "Drivers" for "Installed" 
1486     aPropertyValue( 0 ).Name  = "nodepath"
1487     aPropertyValue( 0 ).Value = "org.openoffice.Office.DataAccess.Drivers/Installed"
1488     
1489     ' Connect to remote UNO
1490     oUnoOfficeConnection = hGetUnoService( TRUE )
1491     
1492     if ( isNull( oUnoOfficeConnection )) then
1493         warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
1494         hGetInstalledDatabaseDrivers() = 0
1495     else
1496         ' Get a configuration provider
1497         oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" )
1498         
1499         ' Get access
1500         xViewRoot = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() )
1501         aElements() = xViewRoot.getElementNames()
1502         
1503         iDriverCount = ubound( aElements() )
1504         dbDriverList( 0 ) = iDriverCount
1505         for iCurrentDriver = 1 to iDriverCount
1506             dbDriverList( iCurrentDriver ) = xViewRoot.getByName( aElements( iCurrentDriver ) ).getByName( "DriverTypeDisplayName" )
1507         next iCurrentDriver
1508         
1509     endif
1510     
1511     if ( VERBOSE ) then 
1512         printlog( CFN & "Returning " & iDriverCount & " drivers" )
1513     endif
1514     hGetInstalledDatabaseDrivers() = iDriverCount
1515     
1516 end function
1518 '*******************************************************************************
1520 function hGetDatabaseDisplayName( dbDriverURL as string ) as string
1522     ' The xcu files (based on dev300m47) hold following driver definitions
1523     ' which are used as parameter to this function. You get a plain text 
1524     ' localized driver name as returnvalue which can be used directly to select
1525     ' a driver in the Database Wizard.
1526     
1527     ' adabas.xcu:  "sdbc:adabas:*"
1528     ' calc.xcu:    "sdbc:calc:*"
1529     ' dbase.xcu:   "sdbc:dbase:*"
1530     ' evoab.xcu:   "sdbc:address:evolution:ldap"
1531     ' evoab.xcu:   "sdbc:address:evolution:groupwise"
1532     ' flat.xcu:    "sdbc:flat:*"
1533     ' ado.xcu:     "sdbc:ado:*"
1534     ' hsqldb.xcu:  "sdbc:embedded:hsqldb"
1535     ' kab.xcu:     "sdbc:address:kab"
1536     ' mozab.xcu:   "sdbc:address:outlook"
1537     ' mozab.xcu:   "sdbc:address:outlookexp"
1538     ' mozab.xcu:   "sdbc:address:mozilla:"
1539     ' mozab.xcu:   "sdbc:address:thunderbird:"
1540     ' mozab.xcu:   "sdbc:address:ldap:*"
1541     ' mysql.xcu:   "sdbc:mysql:jdbc:*"
1542     ' mysql.xcu:   "sdbc:mysql:odbc:*"
1543     ' odbc.xcu:    "sdbc:odbc:*"
1544     ' jdbc.xcu:    "jdbc:*"
1545     ' jdbc.xcu:    "jdbc:oracle:thin:*"
1546     ' mysql.xcu:   "sdbc:mysql:jdbc:*"
1548     
1549     ' Note that some drivers (like e.g. HSQL Database Engine) do *not* show up
1550     ' in the Database Wizards listbox!
1551     
1553     dim oUnoOfficeConnection as object
1554     dim oUnoConfigurationAccess as object
1555     dim aPropertyValue(1) as new com.sun.star.beans.PropertyValue
1556     dim oConfig as object
1557     dim oDriver as object
1558     dim sDatabaseName as string
1560     const CFN = "global::tools::includes::optional::t_database.inc::hGetDatabaseDisplayName(): "
1561     
1562     ' Path to the node, searches all files below "Drivers" for "Installed" 
1563     aPropertyValue( 0 ).Name  = "nodepath"
1564     aPropertyValue( 0 ).Value = "org.openoffice.Office.DataAccess.Drivers/Installed/"
1565     
1566     ' Connect to remote UNO
1567     oUnoOfficeConnection = hGetUnoService( TRUE )
1568     
1569     if ( isNull( oUnoOfficeConnection )) then
1570         warnlog( CFN & "Failed to establish UNO connection, hGetUnoService failed" )
1571         sDatabaseName = ""
1572     else
1573         ' Get a configuration provider
1574         oUnoConfigurationAccess = oUnoOfficeConnection.createInstance( "com.sun.star.configuration.ConfigurationProvider" )
1575         
1576         ' Get access
1577         oConfig = oUnoConfigurationAccess.createInstanceWithArguments( "com.sun.star.configuration.ConfigurationAccess", aPropertyValue() )
1578         try
1579             oDriver = oConfig.getByName( dbDriverURL )
1580             sDatabaseName = oDriver.getByName( "DriverTypeDisplayName" )
1581         catch
1582             warnlog( CFN & "Invalid driver or driver unsupported on this platform" )
1583             sDatabaseName ""
1584         endcatch
1585         
1586     endif
1587     
1588     if ( VERBOSE ) then 
1589         printlog( CFN & "Database display string: " & sDatabaseName )
1590     endif
1591     hGetDataBaseDisplayName() = sDatabaseName
1592     
1593 end function