Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Firebird 2.0 (que hago) (https://www.clubdelphi.com/foros/showthread.php?t=44412)

Caral 08-06-2007 23:15:17

Hola
A la hora de hacer el cambio de access a firebird el campo boolean lo hace automatico a varchar (F o T), es casi lo mismo, en realidad con esto no se tienen problemas, en mysql lo cambia a SmalInt (0 o 1), como comentario.
Hay mas problemas con el campo memo, que lo hace blob, y luego lo lee como string, es un enredo, se tiene que cambiar a tipo texto en access antes de cambiarlo o traspasarlo a firebird, bueno, tampoco es tan complicado, ahora que lo se.
Me siento bien atascado, no salgo de muchas cosas, lo que me esta complicando la vida son las sentencias sql, me estan matando, he logrado modificar varias a ver que pasa, usando los aportes de mis maestros (vosotros), ya entiendo el concepto de case y bueno ya no me da error, los problemas vienen de que las consultas no devuelven los valores que necesito, es muy curioso, en un caso en particular, me devuelve acabado, bodega, creacion, facturacion, pero no produccion, por que, ni idea, lo he revisado por todo lado.
Bueno si no me doy por vencido, seguire intentandolo, por lo menos un rato, que facil es access en comparacion, se que tambien tengo la opcion de ligar la tabla, access - mysql, no me gusta mucho pero funciona, no se si se podra ligar access - firebird, en tal caso no creo que sea una buena opción.
Quien invento el sql y porque lo cambian segun la base de datos, no deberia ser un estandart.:confused:
Esto de la programacion es complicado, me estoy dando cuenta de que cada vez soy mas novato, voy para atras.
Saludos

fjcg02 08-06-2007 23:20:11

Caral,
los campos nulos son nulos, como su propio nombre indica. Es SIN VALOR, ni espacio, ni cadena de longitud cero '', ni nada similar.
Te lo cuento porque a mi en su día me costó encontrar sentido al asunto.

Por ejemplo, si haces una busqueda por un campo distinto de un valor , los registros que lo tengan a nulo no te aparecen porque no tienen valor, y así un montón de cosas.
Lo más simple, es poner los campos como NOT NULL, y cuando sean vacios poner valor = ''. Seguro que algún purista indica algo en sentido contrario, pero qué queremos, funcionalidad y simpleza ante todo . O no?

Saludos no nulos a todos

maeyanes 08-06-2007 23:26:08

Cita:

Empezado por Caral
Quien invento el sql y porque lo cambian segun la base de datos, no deberia ser un estandart

El SQL tiene un estándar, y sobre este estándar existen varias versiones... creo que la más reciente es SQL-2003

Ahora, resulta que la gran mayoría de los manejadores de bases de datos incorporan características propias dentro de estos estándares...

Así que si quieres hacer una aplicación que trabaje en varios motores, debes hacer tus consultas SQL usen el estándar estríctamente, esto es, no usar las características de un motor en particular.



Saludos...

Caral 09-06-2007 00:20:20

Hola
Tengo una duda:
En esta parte de la consulta:
Código SQL [-]
Case when (Estaciones.descripcion is null) then 'Creación de Orden' ELSE Estaciones.descripcion END
Funciona bien, el problema es que el campo lo llama Case y necesito que se llame Estacion, osea algo asi:
Código SQL [-]
Estaciones.descripcion AS Estacion
En que lugar de la primera consulta pondria el AS Estacion?
Saludos

vtdeleon 09-06-2007 00:33:06

Código SQL [-]
Case when (Estaciones.descripcion is null) then 'Creación de Orden' ELSE Estaciones.descripcion END Estacion

Al final, chequealo asi, no es necesario As

Caral 09-06-2007 00:41:05

Hola vtdeleon
Eres un genio, me he roto la cabeza en esto, ya esta.
Muchas gracias

Delfino 09-06-2007 13:38:06

Código SQL [-]
Case when (Estaciones.descripcion is null) then 'Creación de Orden' ELSE Estaciones.descripcion END as Estacion
creo q con el as tb funcionaria..

Caral 09-06-2007 17:40:38

Hola
Tengo otra consulta:
He revisado en algunos hilos al respecto, pero no concretan el punto.
He visto que firebird no filtra ciertas diferencias, como por ejemplo estas:
USUARIO - usuario , mayuscula, minuscula
ESTACION - Estación, mayuscula, minuscula, tilde
Estacion - Estación, tilde
EST02 - Est02, Mayuscula, minuscula
Esto sucede, tanto en el sqlEditor del ibexpert, que me indica en color rojo cuando encuentra una tilde etc., como cuando se hace una consulta, si hay alguna de las diferencias, simplemente no las pone o no las encuentra.
jachguate, me explico que usando el charser ISO_8859_1, se definen ciertos parametros de escritura, no entiendo bien lo del COLLATION, donde se coloca.
Duda:
Hago la tabla nueva en el ibexpert, en esta le coloco como charset ISO_8859_1, el collation no se donde ponerlo.
Pregunta:
Abra alguna manera de que firebird, automaticamente, ignore o compruebe estas diferencias y ejecute la sentencia sin tomarlas en cuenta ?.
Me ayudais, por favor.
Saludos


La franja horaria es GMT +2. Ahora son las 13:04:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi