Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Gracias por las respuestas, efectivamente el campo boolean no lo encuentro por ningun lado:

Cuando hago el tralado de las tablas, me lo convierte en varchar, automaticamente, y lo pone T o F, segun el caso.
Pregunta:
El tipo blob, es memo?
Esta muy bonito, si el campo es numerico sale una calculadora y todo.
Saludos
Responder Con Cita
  #22  
Antiguo 06-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cita:
Empezado por vtdeleon
Seguro?, porque he tratado de hacerlo y nada nadita. De la unica manera que he podido hacer un campo de este tipo es mediante un Domain.
Fue un error mio... y esto se debe a que Interbase 7.x si tiene el tipo de datos BOOLEAN.

Acabo de verificar y si, Firebird NO cuenta con el tipo de datos BOOLEAN, así que como bien comenta jachguate, se puede usar mediante CHAR(1) o SMALLINT...

O como bien mencionas tu, con un dominio:

Código SQL [-]
CREATE DOMAIN TBOOLEAN AS
  SMALLINT
  DEFAULT 1
  NOT NULL
  CHECK (VALUE IN (0, 1));


Saludos...
Responder Con Cita
  #23  
Antiguo 06-06-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Caral, algo, no mucho, de esas cosas te puedo ir respondiendo:

1. Tengo entendido que el CHARSET es el conjunto de caracteres permitidos a usar en la base de datos. Yo lo tengo con el ISO8859_1
Dependiendo del CharSet algunos caracteres pueden que se vean y/o almacenen y otros no...

A decir verdad, me está llamando la atención esto que pones:
Cita:
Empezado por Caral
vi ponen win1252 y asi lo hice yo.
Reconozco que no se mucho de la diferencia entre unos y otros. De que los hay los hay.... Tengo que hacer mejor mi tarea

2. No tiene campo booleano, al menos yo no le encuentro. Hay que ingeniarselas. Por ejemplo usar un campo VARCHAR para que almacene 'SI', 'NO' o un integer (0 para no, 1 para si).

ADo no utilizo. Ni tampoco los Zeos.
Yo empleo los componentes IBX (los de la paleta Interbase) y me funcionan.
Lo que dices sobre transacción es que para conectarse a la base de datos (empleando IBX) necesitas de:
* IBDataBase
* IBTransaction

Fijate que el componente IBDataBase tiene una propiedad DefaultTransaction. A dicha propiedad le asignas el IBTransaction. En DBTransaccion defines que acciones por defecto debe tomar ante una transacción. Por lo general con TACommit ya anda. Los componentes IBX son símiles a otros, no creo que tengas problemas...

Espero que sigas avanzando.
Saludos,

EDITO:
Al pulsar el botón enviar, me he dado con la sorpresa de que ya te habían respondido... y de paso me aclararon mi duda. No me hagas caso... que ya te dieron mejores respuestas más acabadas y certeras los maestros...
¡Gracias!
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 06-06-2007 a las 22:00:15.
Responder Con Cita
  #24  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Voy rapido, creo.
Ya me conecte con ado, con ib y con zeos, la mas rapida es zeos .
Pregunta:
Si en un campo integer o float, la tabla queda en null, afecta en algo?
Hay alguna manera de generar una consulta sql, dentro de IBexpert ?
Si hay forma, se pueden ligar tablas en la consulta, como?
Gracias, voy como bala, con vosotros.
Saludos
Responder Con Cita
  #25  
Antiguo 06-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Cita:
Empezado por Caral
Hola
Pregunta:
Si en un campo integer o float, la tabla queda en null, afecta en algo?
Siempre y cuando la columna no haya sido declarada como NOT NULL, no pasa nada...

Cita:
Hay alguna manera de generar una consulta sql, dentro de IBexpert ?
Busca el SQL Editor, desde esa ventana puedes escribir consultas SQL y ejecutarlas...

Cita:
Si hay forma, se pueden ligar tablas en la consulta, como?
Gracias, voy como bala, con vosotros.
Saludos
Si se pueden ligar tablas en una consulta... usando el JOIN:

Código SQL [-]
select a.campo1, a.campo2, b.campo1, b.campo2
from tabla1 a
join tabla2 b on a.campo1 = b.campo1


Saludos...
Responder Con Cita
  #26  
Antiguo 06-06-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Para Lanzar la cosulta desde IBExpert puedes hacerlo con el Editor de SQL.
Te vas a Herramientas, Editor SQL escribes la consulta y das sobre "RUN".

Sinceramente esta parte no entiendo:
Cita:
Empezado por Caral
Si hay forma, se pueden ligar tablas en la consulta, como?
Creo que te refieres a algo como:
Código SQL [-]
select ...
where Tabla1.CampoID = Tabla2.CampoID

Si es eso, no hay problema.

Desde Delphi si hay que tener recaudos con los tipos NULL cuando se dispara una consulta. He visto un post que puso el maestro Lepe en donde explicaba bien esta situación... pero no me acuerdo de donde era... Yo también ando con problemas con el NULL.

Saludos,

EDITO: Lo econtré: http://www.clubdelphi.com/foros/show...=NULL+Firebird
__________________
Delphius
[Guia de estilo][Buscar]

Última edición por Delphius fecha: 06-06-2007 a las 22:25:40.
Responder Con Cita
  #27  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sois mas rapidos que yo.
Ya lo hice, y funciona perfecto, con ligar tablas me referia a ver varias tablas en una consulta tipica de sql, si lo hace y perfecto.
Código SQL [-]
select * from articulos, articulomaterial where descripcion = 'ALCALA'
Una consulta de dos tablas, sencilla.
Esta consulta en especial trae 11855 registros y lo hizo muy rapido.
He notado, que las consultas son mas rapidas que en mysql, curioso.
Bueno aqui sigo experimentando un poco, algun dia manejo estas cosas, por supuesto con vuestra ayuda.
Saludos
Responder Con Cita
  #28  
Antiguo 06-06-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
Cita:
Empezado por Caral
Esta consulta en especial trae 11855 registros y lo hizo muy rapido.
Si un producto natural te parece rápido, espera a que le entiendas mejor a como funcionan los "Planes de ejecución" y entonces si todo lo que hagas va a ser un tiro

Tambien vas a sacar mucho provecho de los procedimientos almacenados, son una chulada, yo tenía una consulta que por si sola por más que traté de optimizarla se tardaba por lo menos 5 segundos en resolverse (varias tablas y muchas relaciones entre ellas)... al final me dije: "Y porque mejor en vez de usar una consulta compleja mejor no hago un procedimiento almacenado que haga lo mismo pero por partes?"... y el procedimiento me devuelve los mismos resultados en 20 milisegundos
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #29  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Xander
Y crees que aprenda a hacer un procedimiento almacenado.?, no se ni que es.
Por donde empiezo, donde hago este procedimiento, en delphi, en firbird en ibexpert, estas ya son palabras mayores.
Me gustaria aprender, donde busco informacion?
Saludos
Responder Con Cita
  #30  
Antiguo 06-06-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
En el IBExpert te pones sobre el arbolito en le nodo de "Procedures" ahi das boton derecho y "New Procedure" y te crea el esqueleto para hacer un procedimiento nuevo...

Revisa los capitulos de SQL e Interbase de la cara oculta de marteens, ahi te explica con muy buenos ejemplos como usar Procedimientos almacenados y Triggers... definitivamente es el mejor libro que puedes leer al respecto.
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #31  
Antiguo 06-06-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
En general un Procedimiento almacenado se ve, como algo como esto:

Código SQL [-]
CREATE PROCEDURE CERTIFICADODEUNIDAD (
    UNIDAD INTEGER,
    MES INTEGER,
    ANHO INTEGER)
RETURNS (
    INDRAIZ INTEGER,
    INDICADOR VARCHAR(200),
    RESULTADO VARCHAR(1000),
    LEYENDA VARCHAR(200),
    META VARCHAR(100),
    DIMENSION VARCHAR(200))
AS
DECLARE VARIABLE INDID INTEGER;
DECLARE VARIABLE VMES VARCHAR(15);
DECLARE VARIABLE VMUESTRA INTEGER;
DECLARE VARIABLE VTIPO INTEGER;
DECLARE VARIABLE VFILTRO VARCHAR(200);
DECLARE VARIABLE VLEYENDA VARCHAR(200);
BEGIN
   FOR SELECT IND_ID, IND_NOMBRE, DIM_NOMBRE, IND_TEXTOTITULO
    FROM EST_INIDICADOR
    LEFT JOIN EST_DIMENSION ON (IND_DIMENSION = DIM_ID)
    LEFT JOIN EST_SECUENCIA ON (SEC_INDICADOR = IND_ID)
    WHERE SEC_ANTECESOR = 0
    ORDER BY DIM_NOMBRE, SEC_ORDEN ASC
    INTO :INDRAIZ, :INDICADOR, IMENSION, :LEYENDA DO
    BEGIN
      /*CALCULAMOS PARA EL INDICADOR RAIZ */
      SELECT FIRST 1 MET_VALOR FROM EST_METAS
      WHERE MET_INDICADOR = :INDRAIZ
      ORDER BY MET_FECHAALTA DESC
      INTO :META;
      VFILTRO = 'AND (ENC_UNIDADMEDICA = ' || CAST( UNIDAD AS VARCHAR (10)) ||')';
      EXECUTE PROCEDURE GRAFICA(:INDICADOR, :MES, :ANHO, VFILTRO ,0, 0)
      RETURNING_VALUES :VMES, :RESULTADO, :VMUESTRA, :VTIPO;
      SUSPEND;

      FOR SELECT IND_ID, IND_NOMBRE
       FROM EST_INIDICADOR
       LEFT JOIN EST_SECUENCIA ON (SEC_INDICADOR = IND_ID)
       WHERE SEC_ANTECESOR = :INDRAIZ
       ORDER BY SEC_ORDEN ASC
       INTO :INDID, :INDICADOR DO
       BEGIN
         /*Y CALCULAMOS PARA LOS SUB-INDICADORES */
         SELECT FIRST 1 MET_VALOR FROM EST_METAS
         WHERE MET_INDICADOR = :INDID
         ORDER BY MET_FECHAALTA DESC
         INTO :META;
         VFILTRO ='AND (ENC_UNIDADMEDICA = ' || CAST( UNIDAD AS VARCHAR (10)) ||')';
         EXECUTE PROCEDURE GRAFICA(:INDICADOR, :MES, :ANHO, VFILTRO ,0, 0)
         RETURNING_VALUES :VMES, :RESULTADO, :VMUESTRA, :VTIPO;
         INDICADOR =  '             '|| :INDICADOR;
         SUSPEND;
       END
    END
END^

Es como un pequeño programa que ejecuta sentencias SQL... la ventaja es que se ejecuta dentro de la base de datos así que los datos no viajan del servidor al cliente para efectuarles el tratamiento... sino que se tratan en el servidor y se envía solo los resultados (en el caso que se tengan que devolver resultados).
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #32  
Antiguo 06-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Gracias Xander, lo voy a revisar.
Saludos
Responder Con Cita
  #33  
Antiguo 07-06-2007
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
El enlace a 'La Cara Oculta de Delphi' no funciona porque parece que a Ian se le ha caducado el dominio y no se ha dado cuenta. Como es un libro gratuito no creo que ponga ningún impedimento si lo ponemos para descargar en clubdelphi.
Si algún moderador da permiso, lo podemos poner.
Responder Con Cita
  #34  
Antiguo 07-06-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Para curarnos en salud, le he enviado un correo a Ian sobre su dominio.

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #35  
Antiguo 07-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Empiezo con el programa, y muchos problemas de sql.
Para empezar, estoy conectado con los componentes ADO por odbc.
Consulta 1:
Código SQL [-]
 QTemp.SQL.Text := 'Select CodUsuario From Usuarios WHERE Graficar = True';
Graficar es un campo boolean, por eso esta el true, la base de datos firebird lo cambia por un campo varchar y lo cambia a T.
Pregunta:
Como hago esta sentencia en delphi con ese tipo de campo (varchar).

Consulta 2:
Código SQL [-]
SELECT OrdenProd.CodOrden, Clientes.NombreCliente, OrdenProd.FechaInicio, OrdenProd.FechaRequerido, OrdenProd.FechaFinal, OrdenProd.OrdenCompra, OrdenProd.CodUsuario, OrdenProd.Prioridad,
IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]) AS Estacion, OrdenProd.CodCliente, OrdenProd.Enrutada, OrdenProd.Comentarios
FROM (Clientes RIGHT JOIN OrdenProd ON Clientes.CodCliente = OrdenProd.CodCliente) LEFT JOIN (OrdenProdItem LEFT JOIN Estaciones ON OrdenProdItem.Estacion = Estaciones.EstacionID) ON OrdenProd.CodOrden = OrdenProdItem.CodOrden
GROUP BY OrdenProd.CodOrden, Clientes.NombreCliente, OrdenProd.FechaInicio, OrdenProd.FechaRequerido, OrdenProd.FechaFinal, OrdenProd.OrdenCompra, OrdenProd.CodUsuario, OrdenProd.Prioridad,
 IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]), OrdenProd.CodCliente, OrdenProd.Enrutada, OrdenProd.Comentarios
ORDER BY OrdenProd.CodOrden DESC;
Bueno aqui se complica mas la cosa.
1-Firebird no hacepta ( [] corchetes )., se cambian a no se necesitan?
2-Firebird no acepta ( IIF Is Null ), Con que se cambian ?

Consulta 3:
Código Delphi [-]
AQItems.SQL.Text:=
       'SELECT OrdenProdItem.CodOrdenItem AS Línea, OrdenProdItem.CodParte AS Código, '+
       'Articulos.Descripcion AS Descripción, Articulos.Categoria AS Categoría, Articulos.SubCategoria AS [Sub Categoría], OrdenProdItem.NumSerie AS [# Pieza],
      IIf([EnProceso],"SI","NO") AS [En Proceso?] '+
       'FROM OrdenProdItem, Articulos, Estaciones '+
       'WHERE (((OrdenProdItem.CodOrden)=[COD]) AND ((OrdenProdItem.CodParte)=[Articulos].[CodParte]) AND ((Estaciones.Descripcion)=[EST]) AND ((OrdenProdItem.Estacion)=[Estaciones].[EstacionID])) '+
       'ORDER BY OrdenProdItem.CodOrdenItem; ';
Aqui el problema es casi el mismo:
1- Firebird no acepta ( IIF Is Null ).
2- Tanto COD como EST, son parametros que estan incluidos en parameters del query, firebird no los reconoce.
Bueno tengo mas, pero con esto ya me medio guio y tengo para un rato.
Nota: en ibexpert he hecho ya las consultas, pero o no me salen los datos del todo o me da muchos errores.
Me ayudais por favor.
Saludos
Responder Con Cita
  #36  
Antiguo 07-06-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Bueno, no soy un experto en Firebird pero a ver si puedo dar respuesta a tus peguntas. Seguro que algún maestro como los llamas tú me corrige, pero me arriesgo.
Cita:
Empezado por Caral
Consulta 1:
Código SQL [-]
 QTemp.SQL.Text := 'Select CodUsuario From Usuarios WHERE Graficar = True';
Graficar es un campo boolean, por eso esta el true, la base de datos firebird lo cambia por un campo varchar y lo cambia a T.
Pregunta:
Como hago esta sentencia en delphi con ese tipo de campo (varchar).
Al ser varchar, se trata igual que un campo caracter, es decir
Código SQL [-]
 QTemp.SQL.Text := 'Select CodUsuario From Usuarios WHERE Graficar =' + QuotedStr('T');
Lo unico es que por lo que conozco, para un campo de un solo caracter no es lo más aconsejable el tipo varchar, ya que varchar optimiza el tamaño que ocupa ese campo en disco. En este caso, poco va a optimizar.
Cita:
Empezado por Caral
Consulta 2:
Código SQL [-]
SELECT OrdenProd.CodOrden, Clientes.NombreCliente, OrdenProd.FechaInicio, OrdenProd.FechaRequerido, OrdenProd.FechaFinal, OrdenProd.OrdenCompra, OrdenProd.CodUsuario, OrdenProd.Prioridad,
IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]) AS Estacion, OrdenProd.CodCliente, OrdenProd.Enrutada, OrdenProd.Comentarios
FROM (Clientes RIGHT JOIN OrdenProd ON Clientes.CodCliente = OrdenProd.CodCliente) LEFT JOIN (OrdenProdItem LEFT JOIN Estaciones ON OrdenProdItem.Estacion = Estaciones.EstacionID) ON OrdenProd.CodOrden = OrdenProdItem.CodOrden
GROUP BY OrdenProd.CodOrden, Clientes.NombreCliente, OrdenProd.FechaInicio, OrdenProd.FechaRequerido, OrdenProd.FechaFinal, OrdenProd.OrdenCompra, OrdenProd.CodUsuario, OrdenProd.Prioridad,
 IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]), OrdenProd.CodCliente, OrdenProd.Enrutada, OrdenProd.Comentarios
ORDER BY OrdenProd.CodOrden DESC;
Bueno aqui se complica mas la cosa.
1-Firebird no hacepta ( [] corchetes )., se cambian a no se necesitan?
2-Firebird no acepta ( IIF Is Null ), Con que se cambian ?
Creo que efectivamente no acepta corchetes. Creo aunque no estoy seguro que puede ser el caracter " ó ' cuando hay campos con espacios en el nombre. Si no hay espacios, simplemente se quitan.
Firebir acepta iif como atajo para la estructura ( sacado del manual )
Código SQL [-]
CASE
   WHEN condicion THEN valorverdadero ELSE valor falso
END
En tu caso te quedaría 
iif(Descripcion=NULL,'Creación de Orden',Descripcion)
Cita:
Empezado por Caral
Consulta 3:
Código Delphi [-]
AQItems.SQL.Text:=
       'SELECT OrdenProdItem.CodOrdenItem AS Línea, OrdenProdItem.CodParte AS Código, '+
       'Articulos.Descripcion AS Descripción, Articulos.Categoria AS Categoría, Articulos.SubCategoria AS [Sub Categoría], OrdenProdItem.NumSerie AS [# Pieza],
      IIf([EnProceso],"SI","NO") AS [En Proceso?] '+
       'FROM OrdenProdItem, Articulos, Estaciones '+
       'WHERE (((OrdenProdItem.CodOrden)=[COD]) AND ((OrdenProdItem.CodParte)=[Articulos].[CodParte]) AND ((Estaciones.Descripcion)=[EST]) AND ((OrdenProdItem.Estacion)=[Estaciones].[EstacionID])) '+
       'ORDER BY OrdenProdItem.CodOrdenItem; ';
Aqui el problema es casi el mismo:
1- Firebird no acepta ( IIF Is Null ).
2- Tanto COD como EST, son parametros que estan incluidos en parameters del query, firebird no los reconoce.
Bueno tengo mas, pero con esto ya me medio guio y tengo para un rato.
Nota: en ibexpert he hecho ya las consultas, pero o no me salen los datos del todo o me da muchos errores.
Me ayudais por favor.
Saludos
En esta tercera, la primera está contestada anteriormente, y la segunda, imagino que tendrás que cambiar la consulta para poner parámetros, que por lo que te he leido, hasta contestas como un maestro al respecto

Espero que te sirva de ayuda el rollo patatero que te he metido.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #37  
Antiguo 08-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La primera ya la solucione:
Código Delphi [-]
QTemp.SQL.Text := 'Select CodUsuario From Usuarios WHERE Graficar = ''T''';
Me costo pero lo hice, despues de mil intentos.
A la segunda no le llego, lo estoy intentando directamente desde IBExpert, y no lo consigo, esta parte es la que importa:
Código SQL [-]
IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]) AS Estacion
Lo he intentado asi:
Código SQL [-]
 if (Estaciones.descripcion = ' ') then 'Creación de Orden'
Y asi:
Código SQL [-]
Case when Estaciones.descripcion = ' ' then 'Creación de Orden'
No me caminan, con esto ' ' , estoy pensando en un valor nulo, no se si me equivoco.
Saludos
Responder Con Cita
  #38  
Antiguo 08-06-2007
Avatar de xander
xander xander is offline
Miembro
 
Registrado: jul 2006
Posts: 499
Poder: 18
xander Va por buen camino
Cita:
Empezado por Caral
A la segunda no le llego, lo estoy intentando directamente desde IBExpert, y no lo consigo, esta parte es la que importa:
Código SQL [-]
IIf([Descripcion] Is Null,"Creación de Orden",[Descripcion]) AS Estacion
Lo he intentado asi:
Código SQL [-]
 if (Estaciones.descripcion = ' ') then 'Creación de Orden'
Y asi:
Código SQL [-]
Case when Estaciones.descripcion = ' ' then 'Creación de Orden'
No me caminan, con esto ' ' , estoy pensando en un valor nulo, no se si me equivoco.
Saludos
Sería algo como esto en tu caso:
Código SQL [-]
  Case when (Estaciones.descripcion is null) 
    then 'Creación de Orden'
    ELSE Estaciones.descripcion 
  END

aunque tambien lo resolverías elegantemente usando:
Código SQL [-]
  COALESCE(Estaciones.descripcion, 'Creación de Orden')

Coalesce devuelve el primer valor no nulo de la lista de parámetros que le pases...
__________________
"Hey, nena, debe ser genial ser tú y verme a mí mismo..."
Responder Con Cita
  #39  
Antiguo 08-06-2007
Avatar de brakaman
[brakaman] brakaman is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: Castellon - España
Posts: 289
Poder: 18
brakaman Va por buen camino
Pues yo estoy usando Firebird 2.0 y el campo booleano no lo veo por ningun sitio. Cosa que no entiendo la verdad.

Pero los expertos supongo que sabran el motivo.
Responder Con Cita
  #40  
Antiguo 08-06-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Ya aclaré más arriba que fue un error mío el pensar que existía el tipo de datos BOOLEAN en Firebird 2.0...

Aquí te lo pongo de nuevo...

Cita:
Empezado por maeyanes
Fue un error mio... y esto se debe a que Interbase 7.x si tiene el tipo de datos BOOLEAN.

Acabo de verificar y si, Firebird NO cuenta con el tipo de datos BOOLEAN

Saludos...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
que hago mal? jvalles Gráficos 2 19-07-2005 14:45:06
Como las hago? jam888 Firebird e Interbase 7 06-05-2005 22:45:41
Como lo hago? danytorres SQL 4 08-06-2004 14:27:42
¿como lo hago? loenx Conexión con bases de datos 6 01-11-2003 15:26:34
Como lo hago¿ MANUEL OVAL SQL 6 31-10-2003 14:43:39


La franja horaria es GMT +2. Ahora son las 15:18:16.


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
Copyright 1996-2007 Club Delphi