Autor Tema: Sqlite  (Leído 6417 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Sqlite
« en: Octubre 12, 2009, 03:31:03 am »
Holi Holas, estaba trabajando en este proyecto y esta bastante decente en este punto asi lo posteo para el que le interese. Es un wrapper para SQLIte3 hecho enteramente en VB6.

http://www.vbsqlite.com.ar/

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Sqlite
« Respuesta #1 en: Octubre 12, 2009, 03:58:25 pm »
Hola Cobein esta de pelos esto, muy bueno y piola para no tener una dependencia.(osea sin instalar) me vienen muchas preguntas pero primero voy a leer bien la Documentación.

por el momento lo que me llama la atencion es esto

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age INTEGER, Name CHAR(16))") = SQLITE_OK Then
es como que las declaraciones de los campos no los tomara en cuenta,
si pones

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age, Name CHAR(0))") = SQLITE_OK Then
o

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age Hola, Name Mundo") = SQLITE_OK Then
es lo mismo.

Bueno felicitaciones nuevamente.


coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Sqlite
« Respuesta #2 en: Octubre 12, 2009, 04:00:52 pm »
Interesante...

Ya te daba por muerto cobein!

Hola Cobein esta de pelos esto, muy bueno y piola para no tener una dependencia.(osea sin instalar) me vienen muchas preguntas pero primero voy a leer bien la Documentación.

por el momento lo que me llama la atencion es esto

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age INTEGER, Name CHAR(16))") = SQLITE_OK Then
es como que las declaraciones de los campos no los tomara en cuenta,
si pones

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age, Name CHAR(0))") = SQLITE_OK Then
o

Código: [Seleccionar]
If mSqlite.sqlite3_exec(f_lSqlite, "CREATE TABLE data (Age Hola, Name Mundo") = SQLITE_OK Then
es lo mismo.

Bueno felicitaciones nuevamente.




Ahi lo que hace esta creando una tabla, y le esta pasando los tipos de variables que tiene. Age = INT; Name = CHAR(16).. si queres cargarle datos despues, tenes que ejecutar otra sentencia SQL con INSERT

saludos
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Sqlite
« Respuesta #3 en: Octubre 12, 2009, 05:47:47 pm »
Es como dice el coco para agregar datos usas el insert.. creo que uno de los ejemplos esta como crear y despues agregar.
Tengan en cuenta que esta apenas armado, no hay creditos, documentacion ni ejemplos suficientes pero asi como esta ya le di bastante uso.

Si ven algun bug avisemne, yo lo testie bastante y no vi nada. Hay muchas mas funciones que no estan en los ejemplos pero las voy a ir poniendo de a poco. =D

Coco, no estoy muerto pero estoy con mil cosas y no tengo mucho tiempo para nada, es mas esto del SQlite lo empece hace como 2 meses y nunca termine nada. Voy muuuy lento.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Sqlite
« Respuesta #4 en: Octubre 12, 2009, 09:50:48 pm »
si entiendo que es para crear la tabla, a lo que me refiero es que por mas que al valor le ponga INTEGER , CHAR(16) , sapallo o tretrabrick es lo mismo, no arroja error ni limita el campo.

si es como entiendo poniendo CHAR(16) estaria limitando el campo a 16 caracteres y si luego inserto una palabra con mas de 16 caracteres los almacena igual.






cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Sqlite
« Respuesta #5 en: Octubre 13, 2009, 06:07:36 am »
Ahh ok entiendo, la verdad nuca vi como trata internamente variables de tamano fijo, pero para los diferentes tipos de datos internamente hace converciones. Ejemplo, pido un string de una columna integer o viceversa, eso no provoca errores ni nada, se maneja internamente haciendo conversiones.
Hay una tabla en las referencia que explica bien el comportamiento. Con respecto a las variables de tamano fijo la verdad no lo se, tengo que averiguar que pasa.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Sqlite
« Respuesta #6 en: Octubre 13, 2009, 09:38:06 pm »
muy bueno que queres que diga...para los tamaños fijos creo por lo que estuve viendo que no existe para poner tamaño fijo a un campo, ni siquiera con un administrador de SQL Litem me deja ponerlo...en la pagina dice:

Citar
SQLite does not enforce the length of a VARCHAR. You can declare a VARCHAR(10) and SQLite will be happy to let you put 500 characters in it. And it will keep all 500 characters intact - it never truncates.

saludos.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Sqlite
« Respuesta #7 en: Octubre 14, 2009, 03:01:23 pm »
Buen dato seba. Por lo que vi es muy flexible cuand se trata de manejar datos, pero tiene  funciones de filtrado que supongo son para casos en los que necesitas realmente un tipo de dato fijo.

No esta en los ejemplos pero despues lo pongo, es un poco mas dificil por que usa un callback pero esta implementado.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Sqlite
« Respuesta #8 en: Octubre 14, 2009, 10:09:55 pm »
perdon dije cualquiera, SI deja ingresar tamaños fijos, pero segun el administrador que uses, estaba usando uno que no le daba bola a los campos fijos, pero ahora me baje uno de los mejores y si lo deja fijo al tamaño que quieras.

SKL

  • Administrador
  • Kilobyte
  • *****
  • Mensajes: 52
  • Reputación: +9/-2
  • GRIPE A
    • Ver Perfil
Re:Sqlite
« Respuesta #9 en: Octubre 17, 2009, 04:52:16 am »
perdon dije cualquiera, SI deja ingresar tamaños fijos, pero segun el administrador que uses, estaba usando uno que no le daba bola a los campos fijos, pero ahora me baje uno de los mejores y si lo deja fijo al tamaño que quieras.

postia la cadena de sql cuando lo hagas asi todos vemos como se hace =)

saluditos

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Sqlite
« Respuesta #10 en: Octubre 27, 2009, 11:27:59 pm »
hola mirando por los suforos del hacker me tope con esto
http://foro.elhacker.net/programacion_general/ayudaextrano_comportamiento_de_sqlite-t271884.0.html

y explica el porque de las declaraciones

Citar
La mayoría de los motores de base de datos SQL (todos los motores de base de datos SQL que no sean de SQLite) utilizan tipos de datos estáticos, sin embargo en SQLite el tipo de datos es dinamico.

La diferencia entre una y la otra es...

Tipo de datos Estaticos : Aqui el tipo de datos a acceptar esta determinado por el campo donde se almacena el registro. Digase que si tienes un campo (Nombre Varchar) no podras insertar datos INTEGER u otro aqui solo caracteres, porque asi esta definido estaticamente en el campo en cuestion.

Tipos de datos Dinamicos: Aqui el tipo de datos a acceptar esta determinado en tiempo real acorde a lo que el usuario inserte y no al tipo de datos que tiene definido el campo en cuestion. Digase que si tienes un campo (Nombre Varchar) Si es posible que insertes un dato INTEGER o un DECIMAL u otro... ya que el tipo de datos a recibir en un campo lo define el valor que insertes en dicho campo y no la definicion que le diste al campo en cuestion.

Por lo tanto, como el funcionamiento de tipos de datos en SQLite es dinamico y no estatico (como en otras DB) por ende es posible hacer cosas que no son posibles en otras bases de datos.

Saludos

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Sqlite
« Respuesta #11 en: Octubre 29, 2009, 01:51:54 pm »
Access por ejemplo no es así. el tipo de datos es Estático.
« última modificación: Octubre 29, 2009, 01:54:59 pm por ssccaann43 »
Miguel Núñez.