FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
codigo sql en filtro de TIBTable
Hola,
EStoy usando D6, IB7, y necesito poner el código SQL siguiente, en un filtro de un TIBTAble. (NUMGRUP = 'lo que hay en TbGruposNUMGRUP') AND (CAUBAJA = 1) Tengo puesto esto, y por algún motivo que no alcanzo a comprender, me da error a partir de and TbMatri.Filter := 'NUMGRUP= ' + TbGruposNUMGRUP.AsString + 'AND CAUBAJA = 1'; Me da un error de: Dynamic SQL Error SQL Error Code =-104 Token unKnown - line2, char 15 AND. Alguien puede ayudarme?? Gracias a todos Virginia Romero
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#2
|
|||
|
|||
NUMGRUP es alfa o numerico? Si es alfa, le faltarian las comillas (te aconsejo utilizar QuotedStr para ese menester)
TbMatri.Filter := 'NUMGRUP= ' + QuotedStr(TbGruposNUMGRUP.AsString) + 'AND CAUBAJA = 1'; Espero te sirva PD: Por cierto, al final has decidido utilizar TIBTables en lugar de TIBDatasets? |
#3
|
|||
|
|||
Hola cadetill!
Cita:
Cita:
Por cierto, cuando tienes algo escrito en algún campo, como ModigySQL del IBDataSet, si quieres cambiar en código su valor, ¿cómo lo haces? se que se usa el add , por que me lo pusiste en un ejemplo, pero, ¿cómo va lo de los + para unir esos add, cuando tengo que poner en varios add un trozo de código? Por otro lado, para asignar un código a una propiedad como filter o selectsql ¿Tienes que borrar primero lo que hay escrito? ¿si escribes código nuevo con el add sin haber borrado, ¿se añade el código a lo que ya tenía esa propiedad , o tienes que escribirlo siempre entero? Gracias por la ayuda, como siempre Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) Última edición por Giniromero fecha: 04-08-2003 a las 15:04:41. |
#4
|
|||
|
|||
Hola
Bueno, lo de alfanumerico o numerico era solo para saber si necesitabas ponerlo entre comillas como te indicaba. Bien, otro posible error (no se si sera de hacer copy-paste o si realmente lo tienes asi) es que no dejas espacio entre el valor del campo y el AND siguiente El tema del TIBDataset Código:
// si se utiliza ADD, primero hay que limpiar el contenido anterior IBDataSet1.DeleteSQL.Clear; // luego se añade lo que se quiera IBDataSet1.DeleteSQL.Add('delete from tabla'); IBDataSet1.DeleteSQL.Add('where id = : old_id'); Código:
IBDataSet1.DeleteSQL.Text := 'delete from tabla ' + 'where id = : old_id'; Código:
IBDataSet1.DeleteSQL.Text := 'delete from tabla where id = : old_id'; Lo explicado aqui, te servira tanto para el SelectSQL, como el DeleteSQL como las demas Bueno, espero te sirva PD: entre los : y old he dejado un espacio para que no me saliera el smile |
#5
|
||||
|
||||
Hola,
Cita:
Saludos |
#6
|
|||
|
|||
Cita:
Muchas gracias por tu ayuda, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#7
|
|||
|
|||
Cita:
Cita:
|
#8
|
|||
|
|||
Hola,
Efectivamente comencé a cambiar el form de TTables a IBDataset, y aunque parece que algunas cosillas se solucionan, me han comenzado a dar otros errores, y a surgir dudas. Por ejemplo, 1) ¿Cual es la diferencia, entre el ON POST, y el ON SERVER dentro de las propiedades del IBDataSet, generatorField, Apply Event? Por que, si uso 'on new record', veo que si antes del post, cancelo, el número que se le había asignado al nuevo registro, (ejem 1200) se "pierde", y al próximo registro que queramos insertar, se le asignará un número más que el que cancelamos, (esto es, el 1201), provocándose "huecos" en el campo auto numérico. Pero en el caso del 'on post' y 'on server', la única diferencia que veo es que, en el on post, se muestra el valor directamente en su campo, cosa que, si quiero que el 'on server' haga, tengo que cerrar y volver a abrir el IBDataSet, para que me muestre el nuevo registro, con su valor correspondiente, en su campo correspondiente, (no funciona, en este caso, el refresh). Lo que no sé, es si, a la hora de trabajar con estas opciones, afectará en algo más, una vez la aplicación este funcionando en varios puestos al mismo tiempo. 2) Tengo una "Tabla" en la aplicación, que sólo quiero usar para insertar nuevos registros. ¿es necesario que me muestre todos los registros o hay alguna manera de acotar los registros que muestra al mínimo posible? 3) en uno de los campos que tengo, en uno de mis form, necesito que sólo figure la hora, pero me aparece la fecha y la hora, lo cual es un problema para mi aplicación. ¿Hay alguna manera de que sólo me muestre, en el TDBEdit, lo que pido? He probado con EditMask de las propiedades del propio campo, dentro de la tabla, pero no sirve de nada, sigue saliendo día y hora. Muchas gracias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#9
|
||||
|
||||
Cita:
Cita:
Cita:
Cita:
Espero te sirva |
#10
|
|||
|
|||
Hola,
Cita:
Cuando se recomienda usar uno y cuando el otro. (el 'on new record' directamente lo descarto). En cuanto a: Cita:
vamos a ver... una de las tablas que tengo creadas en mi interbase, sólo me sirve para que yo le añada nuevos registros desde mi aplicación, en el form concreto en el que está ubicada, no la necesito para que me muestre registros, por lo tanto, como quiera que el IBDataSet, por lo que tengo entendido, funciona mejor cuanto menos registros "muestra", como hacer para no tener una definición en el select, que a efectos de funcionamiento, no sea como un TIBTable, que me esté "mostrando" todos los registros que tiene guardados En cuanto a: Cita:
Gracias por la ayuda Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#11
|
||||
|
||||
Cita:
Código:
try IBDataset.Post IBTransaction.Commit; // o CommitRetaining except IBTransaction.Rollback; end; Cita:
Otra solución es no tener el IBDataset y tener Edits normales y, en el boton de aceptar, lanzar un SQL de Insert con un TIBQuery. Cita:
Cita:
|
#12
|
||||
|
||||
Cita:
Cita:
Cita:
Cita:
Disculpa, pero no entiendo que quieres decir con 'de forma que mi transaccion dure lo menos posible', bueno, en realidad, no entiendo muy bien lo que me quieres decir con todo esto. Gracias por la ayuda virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#13
|
|||
|
|||
Cita:
En mi caso, yo utilizo una tabla de contadores, pero tu puedes utilizar lo que mas te guste (un generador, una consulta SQL,....) Bueno, espero esto sea algo mas explicatorio |
#14
|
|||
|
|||
Creo que esta vez me ha quedado claro.
Gracias por la ayuda. Saludos Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
|
|