Problema con SQLite


([N1] leonardo daniel velazquez fuentes) #1

Hola a todos estoy tratando de guardar unos datos en una base de datos SQLite para posteriormente usarla en otro programa que ejecutare desde Velneo, bueno el asunto es que debo abrir la B.D. limpiar la tabla, recorrer la lista de otra tabla de velneo y llenar la tabla en SQLite, perooo no me abre la B.D. aclaro que es parecido el metodo al que utilize cuando migre la informacion a velneo, solo que abria la tablas en sqlite las recorria e iba insertando fichas nuevas y modificando campos en la tabla destino… les dejo el error ( la b.d. se abre perfecto en SQLiteAdmin como Navicat Premium.

Error: out of memory. Abriendo la B.D. por mas que busco nada mas no encuentro



([N1] leonardo daniel velazquez fuentes) #2

nadie a batallado para abrir B.D. de SQLlite ???


([N3] pacosatu) #3

Hola leonardo daniel velazquez fuentes.

Desde luego con esta información poco podemos ayudarte.
Adjunta la base de datos con unos pocos registros y hago la prueba.

De todas formas veo un error en el comando SQL INSERT INTO -> los valores alfabéticos deben ir entre comillas dobles o simples.
INSERT INTO … VALUES (\c" + CIUDAD + “\c,”\c" + ESTADO + "\c …

Saludos
Paco Satué


([N1] wikan) #4

No está abriendo la base de datos, la variable OK_CONEXION está a 0.

Si buscamos un error en las líneas anteriores, lo primero que veo es que usas las barras , en Velneo por multiplataforma se usa /. Cambialas y pruebas, es posible que no este abriendo el fichero de la base de datos por eso mismo.


([N1] leonardo daniel velazquez fuentes) #5

hOLA, lo de OK_CONEXION lo pongo asi, porque asi venia en el ejemplo de importacion de datos por SQLite, aqui te pongo el codigo, de hecho en este codigo me base para llebar una tabla de SQLite, de hecho son 4 tablas, las 4 tablas se tienen que vaciar antes de llenarlas…

Proceso: IMP_ESTADOS

Cargar lista ( ESTADOS@vAztecaDat, ID, , , , )
      Recorrer lista eliminando fichas
            Libre
Libre
BD: Crear manejador ( BDEX, SQLite versión 3, "d:\Transporte.db", , , )
Set ( OK_CONEXION, 0 )
BD: Conectar ( BDEX, , , OK_CONEXION, OK_MENSAJE )
      Rem ( Si la conexión tiene éxito se ejecuta el subproceso. OK_CONEXION siempre devuelve 0 )
      Set ( OK_CONEXION, 1 )
      Rem ( Ejecutamos la consulta SQL )
      Set ( ODBC_CONSULTA_SQL, "select * from states" )
      Mensaje ( "Se va a ejecutar la consulta: " + ODBC_CONSULTA_SQL, Información, , "Aviso" )
      BD: SQL ( BDEX, ODBC_CONSULTA_SQL, ODBC_NUM_FILAS, 1 )
            Rem ( Subproceso en el que podemos gestionar los registros obtenidos en la consulta SQL )
            Rem ( ODBC_NUM_FILAS siempre devuelve -1 )
            Mensaje ( "Se ha ejecutado el comando " + ODBC_CONSULTA_SQL + " –> " +
ODBC_NUM_FILAS + " filas", Información, , )
            Set ( ODBC_CONTADOR, 1 )
            BD: Recorrer lista ( BDEX )
                  BD: Get dato de columna por nombre ( BDEX, "state", STATE )
                  BD: Get dato de columna por nombre ( BDEX, "state_code", STATE_CODE )
                  Crear nueva ficha en memoria ( ficha vmaestro mem, ESTADOS@vAztecaDat )
                        Rem ( Hay que tener en cuenta que las variables ID y VAL son alfabéticas, por lo que
tendremos que convertir a número su contenido )
                        Modificar campo ( NAME, STATE )
                        Modificar campo ( STATE_CODE, STATE_CODE )
                        Libre
                  Alta de ficha ( ficha vmaestro mem )
                        Libre
                        Rem ( La ficha creada es enviada a la salida del proceso )
                        Añadir ficha a la salida
                  Libre

ADJUNTO B.D.

https://app.box.com/s/nufw7se1wws38dd0tzi38uic4c5wkl6z

[quote quote=44663]No está abriendo la base de datos, la variable OK_CONEXION está a 0.

Si buscamos un error en las líneas anteriores, lo primero que veo es que usas las barras , en Velneo por multiplataforma se usa /. Cambialas y pruebas, es posible que no este abriendo el fichero de la base de datos por eso mismo.

[/quote]

([N3] pacosatu) #6

Hola leonardo daniel velazquez fuentes.

La base de datos SQLite funciona perfectamente.

El error, como ya te ha indicado Manuel, es el BackSlash que en Velneo debe escaparse o usar el Slash. Así quedaría
BD: Crear manejador ( BDEX, SQLite versión 3, “d:\Transporte.db”, , , )
BD: Crear manejador ( BDEX, SQLite versión 3, “d:/Transporte.db”, , , )

Si el Path de la Base de datos de SQLite lo hubieras puesto en una Variable local hubieras detectado el error enseguida usando el Depurador de Velneo.

Saludos
Paco Satué


([N1] leonardo daniel velazquez fuentes) #7

Ok gracias ya funciono, efectivamente el Insert tenia un error… y lo de las “//” o “\” tambien funciono, pero se me hace extraño que en el proceso de importacion que puse aqui como ejemplo de transporte.db no use \ y funciono bien… es extraño no ?

gracias

[quote quote=44687]Hola leonardo daniel velazquez fuentes.

La base de datos SQLite funciona perfectamente.

El error, como ya te ha indicado Manuel, es el BackSlash que en Velneo debe escaparse o usar el Slash. Así quedaría
BD: Crear manejador ( BDEX, SQLite versión 3, “d:\Transporte.db”, , , )
BD: Crear manejador ( BDEX, SQLite versión 3, “d:/Transporte.db”, , , )

Si el Path de la Base de datos de SQLite lo hubieras puesto en una Variable local hubieras detectado el error enseguida usando el Depurador de Velneo.

Saludos
Paco Satué

[/quote]