Page 2 of 5

Re: start with sqlite

Posted: Tue May 07, 2019 7:09 pm
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

Re: start with sqlite

Posted: Wed May 08, 2019 2:12 am
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

Re: start with sqlite

Posted: Wed May 08, 2019 9:46 am
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

Re: start with sqlite

Posted: Wed May 08, 2019 10:32 am
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?
....

Re: start with sqlite

Posted: Wed May 08, 2019 11:22 am
by mustafa
Hi Eric
+1

Re: start with sqlite

Posted: Thu May 09, 2019 5:00 pm
by SALINETAS24
Gracias a todos por contestar, sigo perdido y sigo investigando..vamos con la cervecita.

Re: start with sqlite

Posted: Fri May 10, 2019 6:49 pm
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

Re: start with sqlite

Posted: Fri May 10, 2019 6:52 pm
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

Re: start with sqlite

Posted: Fri May 10, 2019 11:06 pm
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 421 times

Re: start with sqlite

Posted: Sat May 11, 2019 1:39 am
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