![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Saludos.
Supongo que Codigo.text es un Dbedit. Prueba usando un Edit. Hasta luego
__________________
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! |
|
#2
|
||||
|
||||
|
Ponle un índice único, y por tanto mantenido a ese campo en el database Desktop.
Desde el evento OnPost error, llamas a midberror y listo. Quizás necesites añadirle que ese campo es requerido y no pueda ser nulo. Haciendo esto, te olvidas de ver si existe el código, y le dejas el proceso al BDE y a la función midberror. El hecho que comentas es bastante extraño, revisa con el database desktop, que valores hay ya en la base de datos. Al parecer el código está formado por letras, ¿mayúsculas/ minúsculas? para este engorro puedes cambiarle las propiedades al DBEdit, para que solo acepte mayúsculas o minúsculas. Lo del Flushbuffers, es mejor que lo pongas en el evento AfterPost de la tabla, así cuando llames al método Post, automáticamente se vacian los buffers. No entiendo por qué llamas a Next despues de hacer el Post, supongo que tendrás algo en los eventos AfterScroll de la tabla... pero no puedo adivinar más..., en principio, el Next sobra. La tabla2 depende de alguna forma con la tabla 1?? igual te dice que el codigo ya existe por otra causa. Creo que deberías decir qué estas haciendo, factura, albaran, clientes.... Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
|||
|
|||
|
Hola !!!
Como hago esto?? Cita:
Y si la tabla2 y la tabla1 tiene un campo en comun codigo?? |
|
#4
|
||||
|
||||
|
-Abres el Database desktop, abres la tabla en cuestion
-Menú Table --> Reestructure -En la ventana que se abre, en el unico combobox que hay, eliges Secondary Index. - Pulsa abajo el boton Define... - elige el campo de fechas y pasalo a la lista de la derecha, usando el boton con dibujito de flechas - Abajo marca las casillas Unique y Maintained - Acepta la pantalla, te pedirá el nombre que le quieres dar a es indice que estas creando, yo suelo darle un nombre asi: idxCodigoAsc, de esta forma, todos mis indices tienen la forma: 'idx' + Nombre del campo + Ascendente o descendente - Acepta todas las pantallas y cierra el database desktop En delphi, dale un clic a tu tabla, en el Inspector de objetos, dale un doble clic al evento OnPostError y dentro de ese evento escribe: midbError(dataset, E) saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#5
|
|||
|
|||
|
gracias voy ha probarlo!!
sin embargo lo hice de la siguiente manera y me funciona bien.. Código:
if codigo <> nil then
qry1.Close;
qry1.ParamByName('codigo').AsInteger := StrToInt(codigo.text);
data1.dataset := qry1;
qry1.open;
if qrybus.EOF then
begin
// aqui inserto
end else
ShowMessage('EL CODIGO YA EXISTE!!');
yo lo hago de sta forma Código:
MessageDlg('ESTA SEGURO Q DESEA MODIFICAR ESTE REGISTRO???', mtCONFIRMATION, [mbOk], 0)
Tb1.Edit;
Tb1.FieldByName('especialidad').AsString := edit1.text;
Tb1.FieldByName('codigo).AsString := edit2.text;
Tb1.Post;
Tb1.Next;
Tb1.FlushBuffers;
Tb1.Close;
Tb2.Edit;
Tb2.FieldByName('especialidad').AsString := edit1.text;
Tb2.FieldByName('descripcion').AsString := edit3.text;
Tb2.post;
Tb2.Next;
Tb2.FlushBuffers;
Tb2.Close;
ShowMessage('EL REGISTRO FUE MODIFICADO CON EXITO!!');
end;
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|