start with sqlite

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: start with sqlite

Post by SALINETAS24 »

Hola a todos, voy un poco perdido con el tema del SQL.

Creo entender que el tema del SQL es como una EXCEL y cada hoja seria una DBF, o una tabla de datos (Clientes,Articulos, etc).Tambien me parece que SQLite trabaja solo en LOCAL, que funcionaria como lo estamos haciendo en RED pero mejorando los tiempos de respuesta cuando trabajamos con muchos terminales (por cierto ¿sabeis a partir de cuantos terminales se nota la caida de velocidad?)...., y para el resto (MySQL.., etc) si que pueden trabajar con una instalación en un servidor remoto, permitiendo el acceso a los datos a través de INTERNETE .. ¿Estoy en lo cierto...?

También he visto algún ejemplo (en Youtube sobre el minuto 11, - https://www.youtube.com/watch?v=EjO5-6Nzc-g ) donde en las distintas definiciones de tablas se crea relación entre los campos, pero todo lo hacen con una especie de DBU.., una herramienta, pero molaria hacerlo a mano... como siempre. ¿se puede hacer..?
En el ejemplo del amigo Mustafa que funciona de maravilla crea una dbf que después encripta. Os pongo trozo de código donde la crea. Ahora bien..., todos los ejemplo que estoy viendo en el foro (magnificos), trabajan con una sola DBF o TABLA.

Sería posible por favor, el mostrarnos un ejemplo parecido al de \SAMPLES\CONTACTOS que se trabaje con varios DBF, para ver como sería con MYSQL o con SQLITE.

Como siempre, muchas gracias por vuestras respuestas y vamos con la cervecita...., que vengo asado de Jerez y motgp :lol:


Code: Select all

*-------------------------------------------*
Function crearbase(mDb)
*-------------------------------------------*

*----------------------------------------------------------------------------------------------------*

 * miscsql always require two parameters. First one is dbo object and the next one is the query. 
 * When creating a database, we have to use connect2db with .t. as the second parameter. 
 * I hope this helps.
 * Rathinagiri

 * miscsql siempre requiere dos parámetros. El primero es objeto dbo y la siguiente es la consulta. 
 * Al crear una base de datos, tenemos que usar con connect2db. T. como el segundo parámetro.
 * Espero que esto ayude.
 * Rathinagiri 

*----------------------------------------------------------------------------------------------------*

  local sQry
  local lOk := .f.

  sQry := "CREATE TABLE IF NOT EXISTS personales (id INTEGER PRIMARY KEY, nombre VARCHAR(55),telefono VARCHAR(15), fecha VARCHAR(10), Married VARCHAR(6), notas VARCHAR(80),PHOTO VARCHAR(15) );"  

  dbo := connect2db(mDb, .t.)
  lOk := miscsql(dbo,sQry)

return nil
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
apais
Posts: 440
Joined: Fri Aug 01, 2008 6:03 pm
DBs Used: DBF
Location: uruguay
Contact:

Re: start with sqlite

Post by apais »

SQL es solamente un lenguaje de consulta de datos.
Es independente de cómo se almacenan los datos.
Con este leguaje tu puedes consultar y obtener datos de una o varias tablas a la vez.
PERO: el resultado siempre es una COPIA almacenada en un recordset.
Un recordset lo puedes conceptualizar como si fuera un array en la memoria de tu equipo.
O sea que tu NUNCA ves datos directamente de las tablas sino copias de ellas o copias de subconjuntos de ellas.
O sea: el equipo cliente arma una sentencia de consulta (string) que envía al servidor via pipes o tcp/ip.
El servidor calcula el resultado (recordset) y lo devuelve por la misma vía hacia el cliente y ahi ya se desentiende del tema.
Te ha quedado claro el concepto ?

Saludos
Angel
Angel Pais
Web Apps consultant/architect/developer.
HW_apache (webserver modules) co-developer.
HbTron (Html GUI for harbour desktop hybrid apps) co-developer.
https://www.hbtron.com
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: start with sqlite

Post by mustafa »

Hola amigo José Manuel "SALINETAS24"
Lo que tu planteas tener varias base de datos (tablas) en
una sola tienes el ejemplo de Dragan lo tienes en el sample
step3.zip tienes una base de datos -> "prenos.db3"
Si utilizas mi Sample en el converter DBF -SQLite que es del
Maestro Rathinagiri -> dbf2sqlite.zip
viewtopic.php?p=20587#p20587
veras que dentro de "prenos.db3" hay varias bases de datos.

Personalmente yo solo estoy utilizando una sola base de datos
es decir lo mismo que fuera una Base DBF.

Es cuestión de experimentar con este tema muy apasionante de SQLite
Una forta abraça

Mustafa
Eric.Developer
Posts: 11
Joined: Mon Nov 13, 2017 5:22 am
Contact:

Re: start with sqlite

Post by Eric.Developer »

see this advanced tool built in Harbour... SQLite Editor (i: DBF, e: MariaDB, MySQL, Excel, JSON)
mustafa wrote:...
ask: which you use the SQLite manager?
SQLite manager?
....
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: start with sqlite

Post by mustafa »

Hi Eric
+1
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: start with sqlite

Post by SALINETAS24 »

Gracias a todos por contestar, sigo perdido y sigo investigando..vamos con la cervecita.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
Ismach
Posts: 161
Joined: Wed Nov 28, 2012 5:55 pm
DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
Location: Buenos Aires - Argentina

Re: start with sqlite

Post by Ismach »

A ver.... El SQL es una parte de un MODELO CONCEPTUAL mucho mas complejo
que deriva del modelo relacional en la teoria de las bases de datos
existen 2 grandes lenguajes MDL y DDL
el DDL (DATA DEFINITION LANGUAGE) es el Lenguage de definicion de datos
e integra las sentencias

CREATE – usada para los objetos (table, index, function, views, store procedure and triggers).
DROP – usada para los objetos existente anteriores
ALTER - usada para modificar la estructura de cualquier objeto de la base de datos.
TRUNCATE – usada para eliminar registros de las tablas incluidas las del propias tablas master.
COMMENT – usada para definir descripciones o detalles en el diccionario.
RENAME – usada en el renombrado de objetos com tablas indices etc etc...
y el MDL (Data Manipulation Language) es el lenguaje para manipular los datos de la base
e incluye las sentencias
SELECT FROM ....
INSERT INTO ....
UPDATE mitabla SET ...
DELETE FROM mytable...

existen lenguajes adicionales como DCL(Data Control Language)
aunque muchos libracos no lo consideran asi y las sentencias son
el GRANT e REVOKE

ademas esta el TCL (transaction Control Language)
este se caracteriza por tratar su efecto sobre el estado
de un objeto como una tabla respecto a una operacion o un grupo de operaciones,
y las mismas son
COMMIT deja una version temporal de un objeto a definitivo e irreversible.
ROLLBACK vuelve atras una version termporal y deja sin efecto una o un grupo de operacione sobre un objeto.
SAVEPOINT – deja puntos de retorno en un grupo de operaciones que se pueden partir en subgrupos de operaciones.
SET TRANSACTION define las carcteristicas de la transaccion.
...
Ismach
User avatar
Ismach
Posts: 161
Joined: Wed Nov 28, 2012 5:55 pm
DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
Location: Buenos Aires - Argentina

Re: start with sqlite

Post by Ismach »

Para poder diseñar una buena base de datos,
de facil mantenimiento, buena performace, buen desempeño,
y gran escalabilidad, es aplicar FORMAS NORMALES eso aprendi en la facultad y lo lo repito
en cada mañana cuando me levanto... jaja
User avatar
jairpinho
Posts: 420
Joined: Mon Jul 18, 2011 5:36 pm
Location: Rio Grande do Sul - Brasil
Contact:

Re: start with sqlite

Post by jairpinho »

SALINETAS24 wrote: Tue May 07, 2019 7:09 pm Hola a todos, voy un poco perdido con el tema del SQL.

Creo entender que el tema del SQL es como una EXCEL y cada hoja seria una DBF, o una tabla de datos (Clientes,Articulos, etc).Tambien me parece que SQLite trabaja solo en LOCAL, que funcionaria como lo estamos haciendo en RED pero mejorando los tiempos de respuesta cuando trabajamos con muchos terminales (por cierto ¿sabeis a partir de cuantos terminales se nota la caida de velocidad?)...., y para el resto (MySQL.., etc) si que pueden trabajar con una instalación en un servidor remoto, permitiendo el acceso a los datos a través de INTERNETE .. ¿Estoy en lo cierto...?

También he visto algún ejemplo (en Youtube sobre el minuto 11, - https://www.youtube.com/watch?v=EjO5-6Nzc-g ) donde en las distintas definiciones de tablas se crea relación entre los campos, pero todo lo hacen con una especie de DBU.., una herramienta, pero molaria hacerlo a mano... como siempre. ¿se puede hacer..?
En el ejemplo del amigo Mustafa que funciona de maravilla crea una dbf que después encripta. Os pongo trozo de código donde la crea. Ahora bien..., todos los ejemplo que estoy viendo en el foro (magnificos), trabajan con una sola DBF o TABLA.

Sería posible por favor, el mostrarnos un ejemplo parecido al de \SAMPLES\CONTACTOS que se trabaje con varios DBF, para ver como sería con MYSQL o con SQLITE.

Como siempre, muchas gracias por vuestras respuestas y vamos con la cervecita...., que vengo asado de Jerez y motgp :lol:


Code: Select all

*-------------------------------------------*
Function crearbase(mDb)
*-------------------------------------------*

*----------------------------------------------------------------------------------------------------*

 * miscsql always require two parameters. First one is dbo object and the next one is the query. 
 * When creating a database, we have to use connect2db with .t. as the second parameter. 
 * I hope this helps.
 * Rathinagiri

 * miscsql siempre requiere dos parámetros. El primero es objeto dbo y la siguiente es la consulta. 
 * Al crear una base de datos, tenemos que usar con connect2db. T. como el segundo parámetro.
 * Espero que esto ayude.
 * Rathinagiri 

*----------------------------------------------------------------------------------------------------*

  local sQry
  local lOk := .f.

  sQry := "CREATE TABLE IF NOT EXISTS personales (id INTEGER PRIMARY KEY, nombre VARCHAR(55),telefono VARCHAR(15), fecha VARCHAR(10), Married VARCHAR(6), notas VARCHAR(80),PHOTO VARCHAR(15) );"  

  dbo := connect2db(mDb, .t.)
  lOk := miscsql(dbo,sQry)

return nil

segue a equivalência
estrutura sqlite.jpg
estrutura sqlite.jpg (57.67 KiB) Viewed 3824 times
Jair Pinho
HMG ALTA REVOLUÇÃO xBASE
HMG xBASE REVOLUTION HIGH
http://www.hmgforum.com.br
martingz
Posts: 394
Joined: Wed Nov 18, 2009 11:14 pm
Location: Mexico

Re: start with sqlite

Post by martingz »

Salinetas tengo un programa que genera la base de datos, despues de eso crea las tablas y las llena desde DBF, esta base de datos se sube a un telefono android que sirve para tomas las lecturas de nuestros usuarios, si te interesa subo el codigo



saludos
Post Reply