FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Yo estoy utilizando Delphi 2007 y TIBDataSet.
No sé cómo hacer dicha operación con el IBExpert. Sí que puedo ver relaciones Maestro/Detalle y funcionan correctamente, pero no sé cómo poder relacionar un Query con la tabla correspondiente y así poder probar la sentencia SQL que indicaba anteriormente.
__________________
Piensa siempre en positivo ! |
#2
|
||||
|
||||
Si no hay forma de hacerlo como quieres, quizás pueda hacerse ejecutando desde tu programa el isql y que guarde el resultado en una tabla/fichero externo, luego desde tu programa lees ese fichero.
Desde luego que las pruebas que he hecho con ibdataset no funcionan, debe ser que internamente hacen uso de un int aunque se haya declarado el campo como bigint. A ver si a mediodía hago una prueba con TFIBDataSet, aunque si no lo usas tú, tampoco va a servir de nada. |
#3
|
||||
|
||||
Hola.
Para aportar mas datos, usando esta tabla: hice unas pruebas con TIBDataset, variando en la cláusula SELECT: CP_SMALLINT, CP_INTEGER, CP_BIGINT, CP_FLOAT, P_DOUBLEPRECISION, CP_NUMERIC y CP_DECIMAL. Con el código: En todos los casos obtuve el error: "Tipo de datos SQL desconocido (32766)", sin siquiera asignar valor al parámetro. Lo que me induce a pensar que esta forma de llamada es incorrecta. Con el código: Sin asignar valor al parámetro no arroja error en ningún caso. Asignando el valor que nos dió gluglu con cualquier tipo de entero, me dá el mismo error de overflow que a él. Con el código: No obtuve error en ningún caso, asignando o no, valores al parámetro CLAVE. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-06-2011 a las 12:52:05. |
#4
|
||||
|
||||
A ver, me estoy liando, en todo esto que se está tratando, ¿qué es :clave ?, si es un parámetro, ¿cómo se está usando?
|
#5
|
||||
|
||||
Eso entendí yo Antonio, al menos es el problema que comenta gluglu en el primer post.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
Hola.
Cita:
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#7
|
||||
|
||||
Hola guillotmarc.
A mi no me ofrece ningún problema, el tema viene de más atrás. Esa consulta que estás mencionando, es la que le sugerí a gluglu como solución al error que le provocaba esta: y esta: cuando el valor asignado al parámetro es el que menciona en el post que inició el hilo. Lo que no estaba en claro era el por qué. Pero ahora se aclara con tu comentario: Cita:
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-06-2011 a las 14:04:10. |
#8
|
||||
|
||||
Perdón, estaba un poco liado con un asunto y me perdí un poco del hilo.
Casimiro, 'Clave' es cualquier campo que quiero pasar a otro DataSet como parámetro para una nueva búsqueda. Creo que Ecfisa me entendió correctamente. Se trata de que quiero realizar una búsqueda con un dato que viene de otra tabla diferente (DataSet diferente). Vamos, como si fuera un Maestro-Detalle. Al detalle, le debo pasar el parámetro 'Clave' (que puede ser cualquier campo que decidamos ...) al DataSet Detalle. Por eso creo que Ecfisa lo ha probado correctamente, creando para ello una tabla que contenga todos los diferentes de tipos de datos que en una consulta posterior pasaremos como parámetros a una nueva consulta de 'Detalle'. El problema es que ese parámetro que vamos a pasar al 'Detalle' puede ser Null ! ... y aquí es donde aparecen todos los problemas que estamos comentando. Delphi parece ser que, como dice guillotmarc, no se aclara con el tipo de datos que se está pasando como parámetro al 'Detalle' en caso de que sea 'Null' dicho parámetro (que en este hilo hemos llamado 'Clave'). Lanza un error de Tipo de Datos desconocido. Es por ello, como estamos comentando, que es necesario hacer un Cast de la manera adecuada. Inicialmente, yo no probé con el Cast, sino con la función Coalesce, para que el valor, en caso de que el parámetro fuera Null, devolviera 0. Pero vuelve a dar otro error, que es por lo que abrí el hilo, en caso de que el valor del parámetro a pasar, fuera un BigInt o en mi caso particular un dato de 12 cifras declarado como Decimal(12,0). De aquí toda la problemática del hilo !
__________________
Piensa siempre en positivo ! |
#9
|
||||
|
||||
Supongo que con "when" ocurrirá igual que con "coalesce"
|
#10
|
||||
|
||||
El problema no es When o Coalesce, el problema es cuando hablamos de Parámetros ....
En tu consulta no has utilizado los campos como parámetros que se pasan de una consulta a otra.
__________________
Piensa siempre en positivo ! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Método tem parametro do tipo sysint | Paulao | Varios | 2 | 16-09-2010 21:20:15 |
SQL CASE y COALESCE | mjjj | SQL | 1 | 17-12-2008 16:37:52 |
tipo de dato para pasar parametro a un store procedure | Bracus | SQL | 6 | 25-03-2008 13:38:13 |
Parametro a todos los objetos de un tipo | amadis | OOP | 1 | 06-10-2007 17:46:47 |
Parametro Tipo BIGINT Stored Procedure | hibero | Firebird e Interbase | 5 | 13-04-2004 19:49:31 |
|