Spanish Usar base de datos SQL

psdos

Active Member
Licensed User
Longtime User
Buenos dias compañeros, tras terminar mi aplicacion que no es mas que algo parecido a una agenda con fotos, quisiera practicar con bases de datos SQL. Mi idea es solo leer de la base de datos, donde habria archivos txt y fotos en JPG. Me echais una mano para empezar? con que creo la base de datos? y luego se agradeceria un pequeño ejemplo de como leer desde ella.

Muchas gracias por vuestra ayuda.
 

Ecoleo

Member
Licensed User
Longtime User
Buenos dias compañeros, tras terminar mi aplicacion que no es mas que algo parecido a una agenda con fotos, quisiera practicar con bases de datos SQL. Mi idea es solo leer de la base de datos, donde habria archivos txt y fotos en JPG. Me echais una mano para empezar? con que creo la base de datos? y luego se agradeceria un pequeño ejemplo de como leer desde ella.

Muchas gracias por vuestra ayuda.

Hola Psdos,
En primer lugar tienes que tener claro , que es lo que quieres "guardar.." en tu base de datos; las bases de datos normalmente NO se utilizan para guardar archivos.txt y fotos .jpg; Por mi experiencia con bases de datos, te aconsejo que "guardes.." en un campo de la tabla que se podria llamar "archivos", el nombre del archivo.txt , y en otro campo la ruta en donde lo tengas ; lo mismo te digo para las fotos.
Si quieres empezar con una bd sencilla , aunque potente, y sobre todo si la quieres para usarla en android, te aconsejo Sqlite; la manera más sencilla de empezar a usarla, es mediante un complemento del navegador Mozilla firefox , sólo tienes que instalarla y desde el menu del firefox, Desarrolador web, Sqlite Manager ya entras en su ide. A partir de aqui, creas la bd, con sus tablas, etc...

este es un código muuy básico para conectarte a una bd que tengas en el terminal.
Se conecta a una bd que se llama "Carta.db", y carga en un listview los registros que trae la sql. Si te fijas, tambien cargo en un bitmap las imagenes que traen los registros que busco; y sólo cargo el nombre del archivo, que es lo que me interesa.
Está sin adecuar y poner "bonito", pero estoy empezando con el basic4android, de momento voy avanzando poco a poco, aprendiendo a usar los controles, uy perdon , las "views"; yo vengo del vbasic 6 y me cuesta adaptarme...


B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.
' PARAMETROS DE LA BASE DE DATOS   
   Dim SQL1 As SQL
   Dim ruta_base As String               : ruta_base=File.DirRootExternal & "/Pruebas"
   Dim ruta_imagen As String            : ruta_imagen=File.DirRootExternal & "/Pruebas/Imagenes/"
   Dim DBFileName As String            : DBFileName = "/Carta.db"
'   Dim DBFileDir As String               : DBFileDir = File.DirInternal
   Dim DBFileDir As String               : DBFileDir = File.DirRootExternal & "/Pruebas"
'   Dim DBTableName As String            : DBTableName = "Articulos"
   Dim crPlatos As Cursor

End Sub

Sub Globals
   'These global variables will be redeclared each time the activity is created.
   'These variables can only be accessed from this module.
   Dim listPlatos As ListView
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
   listPlatos.Initialize("ListView1")
   Activity.LoadLayout("Main")
   ' INICIALIZA LA BASE DE DATOS
   If FirstTime Then 
         SQL1.Initialize(DBFileDir, DBFileName, True)
   End If
   Activity.AddView(listPlatos, 0, 0, 100%x, 100%y) ' ocupa toda la pantalla 100*100
    'listPlatos.SingleLineLayout.ItemHeight=100dip ' altura de cada linea
   'listPlatos.SingleLineLayout.Label.TextSize=20
   'listPlatos.SingleLineLayout.Label.TextColor = Colors.Blue ' color del font
   'listPlatos.SingleLineLayout.Label.Gravity = Gravity.CENTER ' se alinea al centro
   listPlatos.TwoLinesAndBitmap.ItemHeight=100dip
   listPlatos.TwoLinesAndBitmap.Label.TextSize=20
   listPlatos.TwoLinesAndBitmap.Label.TextColor=Colors.Blue
   listPlatos.TwoLinesAndBitmap.Label.Gravity=Gravity.CENTER
   
   lleno_list
End Sub
Sub lleno_list
   Dim Bitmap1 As Bitmap
   crPlatos.IsInitialized
   Dim i As Int
   Dim cadena As String
   crPlatos = SQL1.ExecQuery("SELECT * FROM Familias where Activa=1 ")
    For i = 0 To crPlatos.RowCount - 1
          crPlatos.Position = i
        ' listPlatos.AddSingleLine(crPlatos.GetString("Articulo")& "->" & crPlatos.GetString("Pventa1"))
       Bitmap1.Initialize(ruta_imagen,crPlatos.GetString("Ruta_foto"))
        cadena=crPlatos.GetString("Familia")
       listPlatos.AddTwoLinesAndBitmap(cadena,"",Bitmap1)
    Next
End Sub

Si necesitas alguna aclaración , aquí estamos, para ayudanos..
Saludos
 

psdos

Active Member
Licensed User
Longtime User
Gracias Ecoleo por toda la info. Se agradece muchisimo el grado de complicidad que teneis en este foro. Buscando en el foro general, encontre la misma recomentacion que tu me haces y empeze a trastear con el "SQLite Expert Personal 3", un gran programa y potente para manejar bases de datos asi como para crearlas. Luego con un poco de codigo de por aqui y por haya, logre hacerme mi base de datos.

Al final meti las imagenes dentro de un campo Blob (no son nada pesadas), y los txt que tenia los he pegado en campos de texto, parece que queda mas profesional esta opcion.

Queria preguntar un detalle de las bases de datos, ¿se pueden encriptar o proteger con alguna contraseña?

Muchas gracias por vuestro soporte compañeros :sign0098:
 

smorgerbowrg

New Member
Conectarme a una bd en un servidor...

Hola, como puedo hacer esto mismo, pero a una base de datos en un servidor? como crear la conexion odbc o la cadena desde el sql1. soy nuevo y necesito conectarme a una bd postgres en unservidor. muchas gracisa x su ayuda.
 
Top