Quiero comenzar con sqlite

Quiero comenzar con sqlite

Postby JoseAlvarez » Wed Jul 08, 2020 1:55 am

Saludos a todos los amigos del foro.

Quiero usar sqlite en mis nuevos sistemas ya que el proceso de instalacion de mysql en los equipos de usuarios hace complicada la instalacion final del software.

Alguien tiene por alli algun "abc" con el cual se deba comenzar?

Uso fivew 17.0 , xharbour y make.

Anticipadas gracias por la ayuda que puedan aportarme.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
JoseAlvarez
 
Posts: 726
Joined: Sun Nov 09, 2014 5:01 pm

Re: Quiero comenzar con sqlite

Postby gabo » Wed Jul 08, 2020 10:43 pm

Que tal Jose te pongo un trozo de codigo.. Espero y te pueda dar una idea y puedas comenzar
Saludos!
Code: Select all  Expand view

 IF !HB_FileExists("DataSystem\Sucursales.db")
    pDB:= sqlite3_open("DataSystem\Sucursales.db", .T. )
    IF Empty( pDB )
       MessageBox( wvw_GetWindowHandle(), ;
                   "No es posible crear la base de datos de listado de Empresas", ;
                   "Sistema para Restaurantes..", MB_OK + MB_ICONALERT + MB_SYSTEMMODAL )
       RETURN .F.
    ENDIF
    cSQLQuery:= "CREATE TABLE empresas(id_empresa VARCHAR(10),nombre_empresa VARCHAR(35),ads_fileini VARCHAR(10),bodega VARCHAR(2) )"
    IF sqlite3_exec( pDB, cSQLQuery ) != SQLITE_OK
       MessageBox( wvw_GetWindowHandle(), ;
                   "No es posible cargar la tabla de listado de Empresas", ;
                   "Sistema para Restaurantes..", MB_OK + MB_ICONALERT + MB_SYSTEMMODAL )
       pDB := NIL // close database
       RETURN .F.
    ENDIF
    cSQLQuery:= "INSERT INTO empresas(id_empresa,nombre_empresa,ads_fileini,bodega) VALUES(:id_empresa,:nombre_empresa,:ads_fileini,:bodega)"
    stmt := sqlite3_prepare( pDB, cSQLQuery)
    IF Empty( stmt )
       MessageBox( wvw_GetWindowHandle(), ;
                   "Can't prepare statement :", ;
                   "Sistema para Restaurantes..", MB_OK + MB_ICONALERT + MB_SYSTEMMODAL )
       pDB := NIL
       RETURN NIL
    ENDIF
    aEmpresas:= { {"CDIS0", "CENTRO PRODUCCION PONIENTE", "SETTINGS", "99" }, ;
                  {"SUC00", "GRINGOS CHICKEN PONIENTE", "SERVER3", "00" }, ;
                  {"SUC01", "GRINGOS CHICKEN CATEDRAL", "SERVER5","01" }, ;
                  {"SUC02", "GRINGOS CHICKEN ORIENTE", "SERVER4","02" }, ;
                  {"SUC03", "GRINGOS CHICKEN TERAN", "SERVER6", "03" }, ;
                  {"SUC04", "EL POLLO ASADITO", "SERVER1","04" } }
    FOR EACH aSucs IN aEmpresas
        sqlite3_reset( stmt )
        sqlite3_bind_text( stmt, 1, aSucs[1] )
        sqlite3_bind_text( stmt, 2, aSucs[2] )
        sqlite3_bind_text( stmt, 3, aSucs[3] )
        sqlite3_bind_text( stmt, 4, aSucs[4] )
        sqlite3_step( stmt )
    NEXT
    sqlite3_clear_bindings( stmt )
    sqlite3_finalize( stmt )
 ELSE
    pDB:= sqlite3_open("DataSystem\Sucursales.db", .F. )
    IF Empty( pDB )
       MessageBox( wvw_GetWindowHandle(), ;
                   "No es posible crear la base de datos de listado de Empresas", ;
                   "Sistema para Restaurantes..", MB_OK + MB_ICONALERT + MB_SYSTEMMODAL )
       RETURN .F.
    ENDIF
 ENDIF
 nJ:= 0
 stmt:= sqlite3_prepare( pDB, "SELECT id_empresa,nombre_empresa,ads_fileini,bodega FROM empresas" )
 DO WHILE sqlite3_step( stmt ) == SQLITE_ROW
    ++nJ
 ENDDO
 aEmpresas:= Array(nJ,4)
 nJ:= 0
 DO WHILE sqlite3_step( stmt ) == SQLITE_ROW
    nCCount := sqlite3_column_count( stmt )
    ++nJ
    IF nCCount > 0
       FOR nI := 1 TO nCCount
          ncType := sqlite3_column_type( stmt, nI )
          SWITCH ncType
          CASE SQLITE_INTEGER
             EXIT
          CASE SQLITE_NULL
             EXIT
          CASE SQLITE_TEXT
            IF sqlite3_column_name(stmt,nI)="id_empresa"
               aEmpresas[nJ,1]:= sqlite3_column_text( stmt, nI )
            ENDIF
            IF sqlite3_column_name(stmt,nI)="nombre_empresa"
               aEmpresas[nJ,2]:= sqlite3_column_text( stmt, nI )
            ENDIF
            IF sqlite3_column_name(stmt,nI)="ads_fileini"
               aEmpresas[nJ,3]:= sqlite3_column_text( stmt, nI )
            ENDIF
            IF sqlite3_column_name(stmt,nI)="bodega"
               aEmpresas[nJ,4]:= sqlite3_column_text( stmt, nI )
            ENDIF
            EXIT
         ENDSWITCH
       NEXT
    ENDIF
 ENDDO
 sqlite3_clear_bindings( stmt )
 sqlite3_finalize( stmt )
 sqlite3_sleep(100)
 pDB:= NIL

 
gabo
 
Posts: 126
Joined: Tue Jan 03, 2006 8:31 pm

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Mon Jul 27, 2020 11:39 pm

Hola Gabo buenas noches, yo tambien quiero hacer unas pruebas con sqlite,
me podrias indicar de donde saco o incluyo las funciones que usas,
ejemplo: sqlite3_open("DataSystem\Sucursales.db", .T. ) o sqlite3_prepare(
desde ya muchas gracias.
Un saludo Marcelo de Argentina
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby hmpaquito » Tue Jul 28, 2020 12:00 pm

Mi abc es que uses Db Browser for Sqlite como gestor de bb.dd. Sqlite.
El resto, via programa, seguro que hay ejemplos en el foro, además de los que te han puesto los compañeros
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Quiero comenzar con sqlite

Postby gabo » Tue Jul 28, 2020 3:22 pm

Hola marcelo
Son funciones de la contrib harbour
gabo
 
Posts: 126
Joined: Tue Jan 03, 2006 8:31 pm

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Tue Jul 28, 2020 3:38 pm

Muchas gracias Gabo. Saludos
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Tue Jul 28, 2020 11:21 pm

Hola Gabo, en contrib de Harbour no encontré ninguna LIB. para usar sqlite3
Me podrias tirar una ayuda mas por favor.
Saludos
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby Marco Augusto » Wed Jul 29, 2020 11:23 pm

Sqlite se puede utilizar exactamente de la misma manera que Mysql con ADO

Solo de instala el conector previamente en el equipo
y se hace una conexión al base de datos con la cadena correspondiente
todos los demás comando son iguales

Una cadena de conexión para Mysql es de la siguiente forma:
cCADENA:="Driver={MySQL ODBC 3.51 Driver};Server=localhost;Port=3306;Database=datos;User=root; Password=passw;Option=3;"
( para el ejemplo se debe instalar el conector (mysql-connector-odbc-3.51.12-win32.msi)

Para Sqlite
cCADENA:="Driver={SQLite3 ODBC Driver};Database=datos.db;"
( se instala SQLiteodbc.exe se debe conseguir en internet )

luego la conexión

IF !CONECTA(cCADENA)
? "ERROR DE CONEXION"
ELSE
? 'CONEXION OK'
ENDIF


FUNCTION CONECTA(cCADENA)
TRY
oApp:= TOleAuto():new("adodb.connection")
CATCH oERRX
RETURN(.F.)
END

oApp:ConnectionString:= cCADENA
TRY
oApp:Open()
CATCH oERRX
RETURN(.F.)
END
RETURN(.T.)
Marco Augusto Rodriguez Manzo
FWH January 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport

PERZO SOFT
Sistemas Personalizados
User avatar
Marco Augusto
 
Posts: 141
Joined: Wed Oct 12, 2005 1:03 pm
Location: Cuernacava, Morelos Mexico

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Thu Jul 30, 2020 7:13 pm

Muchas gracias Marco, muy clarito.
Voy a probar entonces.
Un saludo. Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby gabo » Mon Aug 03, 2020 6:12 pm

Marcelo
\harbour-core\contrib\hbsqlit3
    test // Folder
    core.c
    errstr.prg
    hbsqlit3.ch
    hbsqlit3.hbc
    hbsqlit3.hbp
    hbsqlit3.hbx
    hdbc.prg
Saludos!
gabo
 
Posts: 126
Joined: Tue Jan 03, 2006 8:31 pm

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Mon Aug 03, 2020 8:08 pm

Gracias Gabo un saludo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby nageswaragunupudi » Tue Aug 04, 2020 1:54 pm

If you have installed sqlite odbc driver and want to use ODBC/ADO, FWH makes it EXTREMELY simple to use Sqlite3.
You do not have to know anything other than simple FWH ado functions, which we must be already using for other ADO databaes.

Here is a simple program:
Code: Select all  Expand view
#include "fivewin.ch"

function Main()

   local cdb := "testsqlite3.db"
   local ocn, ors, cSql

   oCn := FW_OpenAdoConnection( cdb )
   if oCn == nil
      ? "failed"
      return nil
   endif

   FW_AdoImportFromDBF( ocn, "c:\fwh\samples\customer.dbf" )

   oRs   := FW_OpenRecordSet( oCn, "customer" )

   XBROWSER oRs FASTEDIT TITLE "SQLITE3 DATABASE TABLE"

   oRs:Close()
   ocn:close()

return nil
 

This program connects to the database if it exists and otherwise creates a new database and connects.
To use sqlite, you do not need to learn anything more than this and you can start working straight from the next minute.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Quiero comenzar con sqlite

Postby Marcelo Roggeri » Tue Aug 04, 2020 3:07 pm

Muchas gracias Mr. Rao por su simplicidad para el ejemplo.
Saludos cordiales.
Marcelo
FWH - Harbour - BCC7 - PellesC
User avatar
Marcelo Roggeri
 
Posts: 325
Joined: Sat Jul 22, 2006 9:04 pm
Location: Venado Tuerto - Santa Fe -Argentina

Re: Quiero comenzar con sqlite

Postby MarioG » Thu Aug 06, 2020 1:12 pm

nageswaragunupudi wrote:If you have installed sqlite odbc driver and want to use ODBC/ADO, FWH makes it EXTREMELY simple to use Sqlite3.
You do not have to know anything other than simple FWH ado functions, which we must be already using for other ADO databaes.

Here is a simple program:
Code: Select all  Expand view
#include "fivewin.ch"

function Main()

   local cdb := "testsqlite3.db"
   local ocn, ors, cSql

   oCn := FW_OpenAdoConnection( cdb )
   if oCn == nil
      ? "failed"
      return nil
   endif

   FW_AdoImportFromDBF( ocn, "c:\fwh\samples\customer.dbf" )

   oRs   := FW_OpenRecordSet( oCn, "customer" )

   XBROWSER oRs FASTEDIT TITLE "SQLITE3 DATABASE TABLE"

   oRs:Close()
   ocn:close()

return nil
 

This program connects to the database if it exists and otherwise creates a new database and connects.
To use sqlite, you do not need to learn anything more than this and you can start working straight from the next minute.


Buenos dias
No tengo exito al ejecutar este ejemplo
Me podrían escribir un paso a paso hasta la conexión?

En principio lo que hice fue seguir el post de softruz

Debemos de instalar el driver de ODBC:

http://www.ch-werner.de/sqliteodbc/sqliteodbc.exe


Luego; compilar este sample Mr. Rao; pero sin éxito

Siguiendo una página web hice lo alli indicado:
Con estos pasos habremos instalado el driver ODBC para acceso a SQLite. A continuación deberemos añadir un origen de datos ODBC, desde "Inicio" - "Configuración" - "Panel de control" - "Herramientas administrativas" - "Orígenes de datos ODBC", en la ventana de Administrador de orígenes de datos ODBC, en la pestaña "DSN de sistema" pulsaremos "Agregar":


Luego volví a compilar el ej. de Mr. Rao; sin exito.

Que me esta faltando?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Quiero comenzar con sqlite

Postby cnavarro » Thu Aug 06, 2020 1:20 pm

Mario, qué error te da?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Next

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Jimmy and 58 guests