Sobre asp y sqlserver

03/01/2006 - 18:38 por richi | Informe spam
Hola amigos,


tengo unas paginas que funcionaban con access y funcionaban sin problemas.

Ahora lo he tenido que migrar a sqlserver y entre otros muchos problemas
encuentro el siguiente.

Tengo dos tablas, una es imagen y otra es pagina

Cuando inserto una imagen entre otras propiedades estan "URL" y "PAGINA".
Son mutuamente excluyentes, si digo que la imagen enlaza con una url relleno
"ENLACE_URL" si digo que enlaza con una pagina de mi sistema relleno
"ENLACE_PAGINA" con un identificador de la tabla "PAGINA"

Cuando inserto una imagen y no relleno "ENLACE_PAGINA" obtengo un bonito
mensaje que me dice que no se puede insertar porque este campo esta
vinculado con la tabla pagina y no le he puesto contenido.

He probado con diferentes codigos:

If ENLACE_PAGINA="" Then
ENLACE_PAGINA=NULL
End If
strSQL = "SELECT * FROM X_IMAGEN WHERE I_IMAGEN=0;"
CrearRS dbi,RS,strSQL,0

Rs.AddNew

RS("ENLACE_URL")=ENLACE_URL

RS("ENLACE_PAGINA")=ENLACE_PAGINA

RS.Update

Tambien he probado a hacerlo con la instrucción INSERT y si "ENLACE_PAGINA"
es '' no lo incluyo, pero sigo teniendo el mismo error.

La pregunta es, ¿como puedo insertar en sql server un registro que
"ENLACE_PAGINA" sea nulo?

Saludos y gracias.

Preguntas similare

Leer las respuestas

#1 Kev
03/01/2006 - 19:13 | Informe spam
No se si te entendi bien, pero mencionas que intentas insertar un registro
en la tabla imagen pero no rellenas el campo ENLACE_PAGINA ahi te da un
error.

Bueno esto puede provocarse por:

- Puede ser que el campo no acepte valores nulos (valida esto)
- Pude que el campo sea una llave foranea (revisa que la relacion con la
otra tabla este bien y que haya correspondecia al momento de insertar
registros)

Salu2
Kevin Guisbert S.
guisbertkevin(arroba)gmail.com
"richi" wrote in message
news:

Hola amigos,


tengo unas paginas que funcionaban con access y funcionaban sin problemas.

Ahora lo he tenido que migrar a sqlserver y entre otros muchos problemas
encuentro el siguiente.

Tengo dos tablas, una es imagen y otra es pagina

Cuando inserto una imagen entre otras propiedades estan "URL" y "PAGINA".
Son mutuamente excluyentes, si digo que la imagen enlaza con una url
relleno "ENLACE_URL" si digo que enlaza con una pagina de mi sistema
relleno "ENLACE_PAGINA" con un identificador de la tabla "PAGINA"

Cuando inserto una imagen y no relleno "ENLACE_PAGINA" obtengo un bonito
mensaje que me dice que no se puede insertar porque este campo esta
vinculado con la tabla pagina y no le he puesto contenido.

He probado con diferentes codigos:

If ENLACE_PAGINA="" Then
ENLACE_PAGINA=NULL
End If
strSQL = "SELECT * FROM X_IMAGEN WHERE I_IMAGEN=0;"
CrearRS dbi,RS,strSQL,0

Rs.AddNew

RS("ENLACE_URL")=ENLACE_URL

RS("ENLACE_PAGINA")=ENLACE_PAGINA

RS.Update

Tambien he probado a hacerlo con la instrucción INSERT y si
"ENLACE_PAGINA" es '' no lo incluyo, pero sigo teniendo el mismo error.

La pregunta es, ¿como puedo insertar en sql server un registro que
"ENLACE_PAGINA" sea nulo?

Saludos y gracias.

Respuesta Responder a este mensaje
#2 Manuel Vera
03/01/2006 - 19:26 | Informe spam
Para que puedas agregar una IMAGEN que no tenga una PAGINA asociada, imagino
que tienes algo como:

IMAGEN PAGINA
= =..lista de campos... -> IDPagina (Clave Primaria)
IDPagina ..lista de campos...

Lo más fácil es que si tienes el SQL Server Enterprise Manager
(Administrador Corporativo) hagas el cambio utilizando la interfaz gráfica
lo cual te crea un archivo SCRIPT o secuencia de comandos con las
instrucciones que necesitas para ajutar la tabla IMAGEN.

La tabla IMAGEN debe tener el campo IDPagina de manera que permita valores
NULL.



Entonces, el script resultante del cambio seria algo como:

/*
este script debes modificarlo y ajustarlo a tus tablas
y debes ejecutarlo desde el query analizer de SQL (analizador de consultas)
*/
BEGIN TRANSACTION
/*
Borrar todas las relaciones de esta tabla con otras, pe. PAGINA
*/
ALTER TABLE dbo.IMAGEN
DROP CONSTRAINT FK_IMAGEN
GO
COMMIT
BEGIN TRANSACTION
/*
Crear una copia de la tabla a modificar, con los cambios
*/
CREATE TABLE dbo.Tmp_IMAGEN
(
/*
aqui se coloca la lista de campos en el formato
campo1 integer not null,
campo2 varchar(50) not null,
etc.
*/
IDPreg int NULL
) ON [PRIMARY]
GO
/*
en caso de haber registros, los pasa a la temporal
*/
IF EXISTS(SELECT * FROM dbo.IMAGEN)
EXEC('INSERT INTO dbo.Tmp_IMAGEN (/* lista de campos */)
SELECT /* lista de campos */ FROM dbo.IMAGEN TABLOCKX')
GO
/*
borrar tabla original
*/
DROP TABLE dbo.IMAGEN
GO
/*
renombrar temporal
*/
EXECUTE sp_rename N'dbo.Tmp_IMAGEN', N'IMAGEN', 'OBJECT'
GO
/*
crear clave primaria
*/
ALTER TABLE dbo.IMAGEN ADD CONSTRAINT
PK_IMAGEN PRIMARY KEY CLUSTERED
(
/*clave primaria */
) ON [PRIMARY]
GO
ALTER TABLE dbo.IMAGEN WITH NOCHECK ADD CONSTRAINT
FK_IMAGEN FOREIGN KEY
(
/*clave primaria o relacion*/
) REFERENCES dbo.PAGINA
(
/*clave primaria o relacion*/
)
GO
COMMIT



Salu2
MV


"richi" escribió en el mensaje
news:

Hola amigos,


tengo unas paginas que funcionaban con access y funcionaban sin problemas.

Ahora lo he tenido que migrar a sqlserver y entre otros muchos problemas
encuentro el siguiente.

Tengo dos tablas, una es imagen y otra es pagina

Cuando inserto una imagen entre otras propiedades estan "URL" y "PAGINA".
Son mutuamente excluyentes, si digo que la imagen enlaza con una url
relleno "ENLACE_URL" si digo que enlaza con una pagina de mi sistema
relleno "ENLACE_PAGINA" con un identificador de la tabla "PAGINA"

Cuando inserto una imagen y no relleno "ENLACE_PAGINA" obtengo un bonito
mensaje que me dice que no se puede insertar porque este campo esta
vinculado con la tabla pagina y no le he puesto contenido.

He probado con diferentes codigos:

If ENLACE_PAGINA="" Then
ENLACE_PAGINA=NULL
End If
strSQL = "SELECT * FROM X_IMAGEN WHERE I_IMAGEN=0;"
CrearRS dbi,RS,strSQL,0

Rs.AddNew

RS("ENLACE_URL")=ENLACE_URL

RS("ENLACE_PAGINA")=ENLACE_PAGINA

RS.Update

Tambien he probado a hacerlo con la instrucción INSERT y si
"ENLACE_PAGINA" es '' no lo incluyo, pero sigo teniendo el mismo error.

La pregunta es, ¿como puedo insertar en sql server un registro que
"ENLACE_PAGINA" sea nulo?

Saludos y gracias.

Respuesta Responder a este mensaje
#3 richi
04/01/2006 - 10:02 | Informe spam
Hola,

estoy acotando el problema, aunque cada veo mas lejana la solución.

El problema viene de que mi servidor no me deja tocar la BBDD en sql server
si no es creando un proyecto con access, importandolo y administrandolo
desde este programa.

Tengo puesto que el campo pueda ser nulo, elimino cualquier relación de
integridad entre los campos de las dos tablas y cuando pruebo desde access a
eliminar el valor del campo en cuestión no me deja.

creo que es un problema del access, porque esto mismo en sql server si
funciona.

Saludos.

"richi" escribió en el mensaje
news:

Hola amigos,


tengo unas paginas que funcionaban con access y funcionaban sin problemas.

Ahora lo he tenido que migrar a sqlserver y entre otros muchos problemas
encuentro el siguiente.

Tengo dos tablas, una es imagen y otra es pagina

Cuando inserto una imagen entre otras propiedades estan "URL" y "PAGINA".
Son mutuamente excluyentes, si digo que la imagen enlaza con una url
relleno "ENLACE_URL" si digo que enlaza con una pagina de mi sistema
relleno "ENLACE_PAGINA" con un identificador de la tabla "PAGINA"

Cuando inserto una imagen y no relleno "ENLACE_PAGINA" obtengo un bonito
mensaje que me dice que no se puede insertar porque este campo esta
vinculado con la tabla pagina y no le he puesto contenido.

He probado con diferentes codigos:

If ENLACE_PAGINA="" Then
ENLACE_PAGINA=NULL
End If
strSQL = "SELECT * FROM X_IMAGEN WHERE I_IMAGEN=0;"
CrearRS dbi,RS,strSQL,0

Rs.AddNew

RS("ENLACE_URL")=ENLACE_URL

RS("ENLACE_PAGINA")=ENLACE_PAGINA

RS.Update

Tambien he probado a hacerlo con la instrucción INSERT y si
"ENLACE_PAGINA" es '' no lo incluyo, pero sigo teniendo el mismo error.

La pregunta es, ¿como puedo insertar en sql server un registro que
"ENLACE_PAGINA" sea nulo?

Saludos y gracias.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida