Faa Problemas Con Sql En Versión 3.8!!!


Ir a la página 1, 2  Siguiente

Objetivo: Faa Problemas Con Sql En Versión 3.8!!!
buenas,

bueno me estoy comiendo varias sorpresas desagradables en la nueva version 3.8

resulta que agregue una columna "referencias"

con esta sentencia: alter table Lucas add column referencias

y la pruebo y me dice que el campo referencias no existe cuando si lo creo, en esa insertidumbre empiezo a buscar por varios lados y resulta que al mirar la sentencia de la tabla master, la sentencia esta mal


asi aparece:
CREATE TABLE "Lucas" ( "idlucas" integer NOT NULL PRIMARY KEY autoincrement,
"capitulo" integer NOT NULL,
"versiculo" integer NOT NULL,
"texto" TEXT, referencias)


asi deberia aparecer:

CREATE TABLE "Lucas" ( "idlucas" integer NOT NULL PRIMARY KEY autoincrement,
"capitulo" integer NOT NULL,
"versiculo" integer NOT NULL,
"texto" TEXT,
"referencias" TEXT)



alguna idea? sigo viendo que pasa....

Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
Hola v3ctor.

Prueba a hacerlo sin las comillas y comprueba si no necesitas usar COLUM

ALTER TABLE Lucas ADD referencias


Referencia:

http://sqlite-latino.blogspot.com.es/2007/12/alter-table.html

Saludos

Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
¿Por qué cuando creas la tabla le dices qué tipo de columna es y qué longitud tiene y cuando añades la columna no le dices nada más que el nombre?
Lo pregunto porque veo que sólo te ha añadido el nombre, que es lo que le dices que haga...


Perfil MP  
Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
Shordi:

¿ Es distinto a escribirlo desde la consola de Sqlite a hacerlo cuando escribimos en el editor de gambas ?.
Es que lo que veo que en la página que añadí de referencia no añade comillas al nombre del campo nuevo, ni tampoco columna.
Se supone que se hace automáticamente.

Cuando normalmente debería ser:

ALTER TABLE "table_name" ADD "column_name" "Data Type"


Que por defecto es texto, siempre es texto claro.

Otra cuestión, ¿ se puede añadir múltiples columnas en Sqlite o solo lo permite hacerlo MySQL, Oracle y SQL_Server ?. Supongo que si.
Parece que la sintaxis es igual. Ejemplo: (Esto es en MySQL)

ALTER TABLE Cliente ADD (Email char(30), Telefono char(20) );



Saludos

Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
esto: alter table Lucas add "ayuda1" TEXT


me deja esto:

CREATE TABLE "Lucas" ( "idlucas" INT4 NOT NULL , "capitulo" INT4, "versiculo" INT4, "texto" TEXT, "referencias" TEXT, "ayuda" "TEXT", "ayuda1" TEXT, PRIMARY KEY ("idlucas") )


como ven gambas cambia la sentencia, una sentencia hecha de cero queda así:

CREATE TABLE "Hageo" ( "idhageo" integer NOT NULL PRIMARY KEY autoincrement,
"capitulo" integer NOT NULL,
"versiculo" integer NOT NULL,
"texto" TEXT,
"ayuda1" TEXT)



menos mal que este problema surgió con una tabla que solo le había agregado 4 capítulos sino me muero algunas tablas tienen 24 capítulos
yo en realidad me "equivoque" pues las referencias era algo que tendría que haber previsto pero bueno en programación no todo puede ser planificado, algunas cosas o la mayoría se van haciendo en el camino, mientras bailas ajjajajajaj


no he podido borrar las columnas creadas, con :
ALTER TABLE Lucas DROP referencias
ni con
ALTER TABLE Lucas DROP COLUMN referencias



alguien sabe como borrar una columna desde la consola sql de gambas?

Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
consulta MAESTRO SHORDI


dado este problema que se dio estoy manejando la idea de crear una tabla nueva con la columna referencia incluida y copiar los datos de la tabla que quedo mal, después renombrar la tabla nueva a su titulo original

como seria el comando para pasar los datos de las columnas de una tabla a otra?
creo que se puede copiar

espero su respuesta SENSEI JAJAJAJAJJ

tabla mal: Lucas

tabla nueva: LucasX

campos a pasar: capitulo,versiculo,texto

última edición por v3ctor el Lunes, 10 Agosto 2015, 15:25; editado 2 veces
Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
encontre esto voy a probarlo:

2º) Copiar los datos de la tabla original a la nueva tabla:
sqlite> INSERT INTO hashes_files_nueva (file, id, crime)
SELECT *
FROM hashes_files;


siiiiiiiiiiiiiiiiiiiiiiiii funcionaaaaaaaaaaaaaaa iupiiiiiiii

sqlcopiado


tres sentencias para solucionar el tema:

tenemos la tabla vieja con el problema, llamada Lucas
creamos una nueva tabla con las especificaciones que necesitamos llamada LucasX

copiamos los datos de la tabla vieja(Lucas) a la tabla nueva(LucasX)
INSERT INTO LucasX (capitulo,versiculo,texto) SELECT capitulo,versiculo,texto FROM Lucas



eliminamos tabla vieja:
DROP TABLE Lucas


renombramos tabla nueva
ALTER TABLE LucasX RENAME TO Lucas

última edición por v3ctor el Lunes, 10 Agosto 2015, 17:12; editado 3 veces
Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
misterio ResultadoX!referencias no muesta datos es como nulo cuando hay datos



Public Sub BuscarTextoVersiculo()
Dim ResultadoX As Result
Dim ReferenciaEntrando As String
Dim ReferenciaSaliendo As String[]

LBoxReferencias.Clear

Print "Select * from '" & LibroSelecionado & "' where versiculo='" & versiculo & "' and capitulo='" & capitulo & "'"
ResultadoX = Conexion.Exec("Select * from '" & LibroSelecionado & "' where versiculo='" & versiculo & "' and capitulo='" & capitulo & "'")

If ResultadoX.Available = True Then
txtEvers.Text = ResultadoX!texto
ReferenciaEntrando = ResultadoX!referencias
Print ResultadoX!referencias

Endif

If InStr(ReferenciaEntrando, ";") <> 0 Then
ReferenciaSaliendo = Split(ReferenciaEntrando, ";")
LBoxReferencias.List = ReferenciaSaliendo
Else
LBoxReferencias.Add("ninguna referencia")
Endif

Labruta.Text = ListBLibros.Current.Text & " " & capitulo & ":" & versiculo

End


bueno solucione este es el aspecto de las referencias:
referencias3_1439226071_494781


rutina final:

Public Sub BuscarTextoVersiculo()
Dim ResultadoX As Result
Dim ReferenciaEntrando As String
Dim ReferenciaSaliendo As String[]
Dim UnaReferencia As String

LBoxReferencias.Clear

ResultadoX = Conexion.Exec("Select * from '" & LibroSelecionado & "' where versiculo='" & versiculo & "' and capitulo='" & capitulo & "'")

If ResultadoX.Available = True Then
txtEvers.Text = ResultadoX!texto
ReferenciaEntrando = ResultadoX!referencias
Endif

If InStr(ReferenciaEntrando, ";") <> 0 Then
ReferenciaSaliendo = Split(ReferenciaEntrando, ";")
For Each UnaReferencia In ReferenciaSaliendo
LBoxReferencias.Add(Trim$(UnaReferencia))
Next
Else
LBoxReferencias.Add(ReferenciaEntrando)
Endif

Labruta.Text = ListBLibros.Current.Text & " " & capitulo & ":" & versiculo

End

última edición por v3ctor el Lunes, 10 Agosto 2015, 18:01; editado 1 vez
Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
v3ctor escribió: [Ver mensaje]
encontre esto voy a probarlo:

2º) Copiar los datos de la tabla original a la nueva tabla:
sqlite> INSERT INTO hashes_files_nueva (file, id, crime)
SELECT *
FROM hashes_files;


siiiiiiiiiiiiiiiiiiiiiiiii funcionaaaaaaaaaaaaaaa iupiiiiiiii

sqlcopiado


tres sentencias para solucionar el tema:

tenemos la tabla vieja con el problema, llamada Lucas
creamos una nueva tabla con las especificaciones que necesitamos llamada LucasX

copiamos los datos de la tabla vieja(Lucas) a la tabla nueva(LucasX)
INSERT INTO LucasX (capitulo,versiculo,texto) SELECT capitulo,versiculo,texto FROM Lucas



eliminamos tabla vieja:
DROP TABLE Lucas


renombramos tabla nueva
ALTER TABLE LucasX RENAME TO Lucas


Hay una manera mucho más simple:
CRETATE TABLE TABLA2 AS SELECT * FROM TABLA1

De todas formas no puedo aconsejarte mucho con el gestor de bases de datos de Gambas: yo no lo uso. En su lugar utilizo el program sqliteman, que viene en los repositorios, mucho más fiable y depurado. Ten en cuenta que, salvo tablas temporales y cosas así, nunca es necesario crear y alterar tablas vía código.
Por otra parte, el imbuir SQL en tu código ya sabes que te limita a un tipo concreto de motor de datos.
Por ejemplo, la sintaxis que has utilizado de INSERT INTO... SELECT , no vale para MySQL, que tiene su equivalente SELECT INTO SELECT (hablo de memoria). Si usases los objetos de bases de datos de gambas en tu código, estarías creando código de superior calidad, por cuanto sería universal a las bases de datos conocidas.
Por ejemplo: Me parece natural que tu programa bíblico devenga en una herramienta de comentario sobre el tema en internet. Varios usuarios añadiendo sus comentarios y sus interpretaciones y discutiendo sobre ello... ahora bien: Sqlite no es la base de datos apropiada para ello. Colocando SQL en tu código estás matando ya, de entrada, esa posibilidad.
Saludos.

Perfil MP  
Objetivo: Re: Faa Problemas Con Sql En Versión 3.8!!!
sabado

Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1385s (PHP: 9% SQL: 91%)
Consultas SQL: 26 - Debug off - GZIP Activado