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