Spanish consultas SQL

hola quisiera saber como hago para hacer una consulta en la base de datos para saber si existe una tabla. esto es lo que tengo hecho por ahora. pero me reemplazar el if c.GetInt("Cont") por una linea q consulte si la tabla existe.


B4X:
Sub comprobar

c=s.ExecQuery("SELECT Cont FROM jugadores ORDER BY Cont DESC")
c.Position = 0
If c.GetInt("Cont")>0 Then
rsgame.Visible=True
Else
rsgame.Visible=False
End If   
End Sub

saludos
 

rbsoft

Active Member
Licensed User
Longtime User
This will give you a list of the tables in your database:
Esto le dará una lista de las tablas de la base de datos:
Select name from sqlite_master where type = 'table'

This will show you if the table exists in the database:
Esto le mostrará si la tabla existe en la base de datos:
Select name from sqlite_master where type = 'table' AND name = 'jugadores'

(Translation by Google Translator - Lo siento, no hablo español)
Dame una igual si mi respuesta fue útil para usted.

Rolf
 
Last edited:

vampirbcn

Active Member
Licensed User
Longtime User
Pongo un sencillo ejemplo de como comprobar si existe una tabla y en caso de no existir la creará:

B4X:
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.
   Private taula As Cursor
   Private dbSql As SQL
End Sub

Sub Activity_Create(FirstTime As Boolean)

   If File.Exists(File.DirInternal,"Lcuras.sql")=True Then  ' Necesitas tener una base de datos con este nombre
     dbSql.Initialize( File.DirInternal,"Lcuras.sql",False)
   Else
     Msgbox("No se encuentra la base de datos","Atencion")
     Activity.Finish
   End If

   ComprobarBaseDatos
End Sub

Sub ComprobarBaseDatos
    Dim i As Int
    Dim ssql As String
    Dim trobat As Boolean
    trobat=False
    taula = dbSql.ExecQuery("SELECT name FROM sqlite_master WHERE Type='table'")
    For i = 0 To taula.RowCount - 1
        taula.Position=i
        If taula.GetString("name")="Pacientes" Then trobat=True
    Next
    If trobat=False Then
        ssql=    "CREATE TABLE Pacientes (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE , historial VARCHAR(30) , nombre VARCHAR(100))"
        dbSql.ExecNonQuery(ssql)
        Msgbox("La base de datos se ha creado","Atención")
    End If
End Sub
 
Last edited:
Top