# -*- coding: iso-8859-1 -*- #. // _ba_TestCreateTable1.py import sys sys.path.append( "modules" ) from _by_FileToUrl import by_FileToUrl # // Convertir un nom de fichier Windows en URL. from _lo_MakeProperty import lo_MakeProperty # // Créer une propriété Libre Office. from _ba_ConstSdbc import ba_ConstSdbc # // Constantes pour sBase. from _ba_CreateDatabase import ba_CreateDatabase # // Crée une database si elle n'existe pas. from _ba_terase import ba_terase # // Détruire une table. #. // Paramètres utiles et pour le programme parent. cUrlDb1 = by_FileToUrl( "_Result_DbTest1.odb" ) # // Nom de la database. cTable1 = "TEST1" # // Nom de la table. #. // Créer une database N° 1 et sa table pour les essais. def ba_TestCreateTable1( oServiceManager ): ctSdbc = ba_ConstSdbc() ba_CreateDatabase( oServiceManager, cUrlDb1 ) #. // Ouverture de la database. oContext = oServiceManager.createInstance( "com.sun.star.sdb.DatabaseContext" ) oDBase = oContext.getByName( cUrlDb1 ) oCon = oDBase.getConnection("", "") oTables = oCon.getTables() ba_terase( cTable1, oTables, oDBase ) oTableDescriptor = oTables.createDataDescriptor() oTableDescriptor.Name = cTable1 oCols = oTableDescriptor.getColumns() oCol = oCols.createDataDescriptor() oCol.Name = "ID" oCol.Type = ctSdbc[ 'INTEGER' ] oCol.IsNullable = ctSdbc[ 'NO_NULLS' ] oCol.IsAutoIncrement = True oCol.Precision = 10 oCol.Description = "Primary Key" oCols.appendByDescriptor( oCol ) oCol = oCols.createDataDescriptor() oCol.Name = "NAME" oCol.Type = ctSdbc[ 'VARCHAR' ] oCol.Description = "Filename" oCol.Precision = 255 oCol.IsAutoIncrement = False oCols.appendByDescriptor( oCol ) oCol = oCols.createDataDescriptor() oCol.Name = "ISREAD" oCol.Type = ctSdbc[ 'BOOLEAN' ] oCol.IsNullable = ctSdbc[ 'NO_NULLS' ] oCol.Description = "Logic value" oCols.appendByDescriptor( oCol ) oTables.appendByDescriptor( oTableDescriptor ) oDBase.DatabaseDocument.store() oCon.close() ctSdbc = {} # // Libère de la mémoire. args1 = lo_MakeProperty( oServiceManager, "Hidden", True ) oDesktop = oServiceManager.createInstance( "com.sun.star.frame.Desktop" ) oDoc = oDesktop.loadComponentFromURL( cUrlDb1, "_blank", 0, [ args1 ] ) oDatasource = oDoc.Datasource oCon = oDatasource.getConnection("","") oStatement = oCon.createStatement() for i in range( 10 + 1, 1, -2 ): sSql = "insert into " + cTable1 + " ( NAME, ISREAD ) values ( 'Ligne " + str( i ) + "', True )" oResult = oStatement.executeQuery(sSql) sSql = "insert into " + cTable1 + " ( NAME, ISREAD ) values ( 'Ligne " + str( i + 1 ) + "', False )" oResult = oStatement.executeQuery(sSql) #. endfor i oDBase.DatabaseDocument.store() oCon.close() oDoc.close( True ) return 0 ''' Dernière modification : 2022-02-22 [Exemple] import sys sys.path.append( "modules" ) from _ba_TestCreateTable1 import ba_TestCreateTable1 # // Créer une database N° 1 et sa table pour les essais. from _lo_LibreOfficeNew import lo_LibreOfficeNew # // Ouvre Libre Office. oServiceManager = lo_LibreOfficeNew() if oServiceManager is None: quit() ba_TestCreateTable1( oServiceManager ) oServiceManager = None [/Exemple] '''