Quiero comenzar con sqlite
- JoseAlvarez
- Posts: 201
- Joined: Sun Nov 09, 2014 5:01 pm
Quiero comenzar con sqlite
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.
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..."
Re: Quiero comenzar con sqlite
Que tal Jose te pongo un trozo de codigo.. Espero y te pueda dar una idea y puedas comenzar
Saludos!
Saludos!
Code: Select all
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
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
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
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 - FivEdit (Cristobal Navarro)
Re: Quiero comenzar con sqlite
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
El resto, via programa, seguro que hay ejemplos en el foro, además de los que te han puesto los compañeros
Re: Quiero comenzar con sqlite
Hola marcelo
Son funciones de la contrib harbour
Son funciones de la contrib harbour
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
Muchas gracias Gabo. Saludos
FWH - Harbour - BCC7 - PellesC - FivEdit (Cristobal Navarro)
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
Hola Gabo, en contrib de Harbour no encontré ninguna LIB. para usar sqlite3
Me podrias tirar una ayuda mas por favor.
Saludos
Me podrias tirar una ayuda mas por favor.
Saludos
FWH - Harbour - BCC7 - PellesC - FivEdit (Cristobal Navarro)
-
- Posts: 122
- Joined: Wed Oct 12, 2005 1:03 pm
- Location: Cuernacava, Morelos Mexico
Re: Quiero comenzar con sqlite
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.)
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 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport
PERZO SOFT
Sistemas Personalizados
fwh 2020 Xharbour 1.2.3
MySQL 5.0.19 Fastreport
PERZO SOFT
Sistemas Personalizados
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
Muchas gracias Marco, muy clarito.
Voy a probar entonces.
Un saludo. Marcelo
Voy a probar entonces.
Un saludo. Marcelo
FWH - Harbour - BCC7 - PellesC - FivEdit (Cristobal Navarro)
Re: Quiero comenzar con sqlite
Marcelo
\harbour-core\contrib\hbsqlit3
\harbour-core\contrib\hbsqlit3
- test // Folder
core.c
errstr.prg
hbsqlit3.ch
hbsqlit3.hbc
hbsqlit3.hbp
hbsqlit3.hbx
hdbc.prg
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
Gracias Gabo un saludo
FWH - Harbour - BCC7 - PellesC - FivEdit (Cristobal Navarro)
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Quiero comenzar con sqlite
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:
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.
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
#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
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
G. N. Rao.
Hyderabad, India
- Marcelo Roggeri
- Posts: 275
- Joined: Sat Jul 22, 2006 9:04 pm
- Location: Venado Tuerto - Santa Fe -Argentina
- Contact:
Re: Quiero comenzar con sqlite
Muchas gracias Mr. Rao por su simplicidad para el ejemplo.
Saludos cordiales.
Marcelo
Saludos cordiales.
Marcelo
FWH - Harbour - BCC7 - PellesC - FivEdit (Cristobal Navarro)
Re: Quiero comenzar con sqlite
Buenos diasnageswaragunupudi 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:This program connects to the database if it exists and otherwise creates a new database and connects.Code: Select all
#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
To use sqlite, you do not need to learn anything more than this and you can start working straight from the next minute.
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
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
Chaco - Argentina
Re: Quiero comenzar con sqlite
Mario, qué error te da?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.