![]() |
Ayuda para interactuar con base de Datos
Hola.
Tengo un fichero en c:\nshop\datos.mdb que me gustaria poder procesarlo. En el se encuentra la tabla Articulos, de la cual , necesitaria ir controlando el stock para poder hacer pedidos, inventarios, etc. He visto que en Los ejemplos de power esta el proyecto DbAccess, pero no tengo ni idea de poder hacerlo funcionar y tampoco se si me iria bien. Supongo que deberia crear desde windows u origen de datos, pero no lo he hecho nunca y voy muy perdido. Tambien veo que igual deberia de hacerlo desde el control powerDBaccess, pero ni idea. Hay alguien que me puede hacer un pequeño tutorial para conseguir abrir la base y poderla leer. Gracias |
Breew, yo tampoco lo he hecho nunca. Pero se algunas cosas. Debes meter un DBaccess como decias, y en modo diseño conectarlo a la BBDD esa de access. Es decir, abres las propiedades de DBaccess con doble click, buscas origen de datos correspondiente a Access, y sigues los pasos para recuperar la tabla y su estuctura.
|
Hola Breew, mándame una copia de la base y te armo un ppj que lea y actualice la tabla de artículos
Saludos |
1 Archivos Adjunto(s)
Hola Breew, te adjunto un zip con un ppj que lee una base access con una tabla de materiales, también va un jpg con la odbc que debes crear, una base con datos. Si tiene algún error avísame y lo vemos. Saludos espero que te sirva. Si no dime y la seguimos.
PD. Crea una carpeta en C: que se llame C:\MF_Breew Saludos |
Hola.
Veo que debo de configurar DNS de sistema, pero me parece que me faltan drivers. Solo me aparece la opcion de SQL Server y de ahi no paso. ¿No has tocado nada de dns de Usuario ? Cita:
|
1 Archivos Adjunto(s)
Que Windows Tinenes, si es Win7 64 Busca Aqui:
C:\Windows\SysWOW64\odbcad32.exe |
Cita:
Conecta sin problemas, puedo leer la tabla, pero cuando actualizo, entiendo que deberia grabar el valor nuevo, pero no lo hace. Tambien tengo dudas sobre como deberia planificarme, tengo poca experiencia. He pensado hacer una busqueda por familias, o por proveedores. Ver el stock y ajustarlo para hacer el pedido. Lo hago directamente sobre la base o paso los resultados a un Table control ? La busqueda la hago por cobol o bien hay algun comando especial en DB ? La base tiene 16.000 articulos, ya que es una base antigua, y cuando habro el fichero contiene varias tablas, Como le indico que tabla ha de buscar ? Gracias por todo. |
Hola.
Estoy probando con una base dbf. He hecho la conexion bien, y lee la tabla correctamente. El problema lo encuentro al hacer una comparacion con la fecha. Si vuelco el valor de la base en un cmtext me aparece formato yyyy/mm/dd. He creado un cmtext para iniciar la busqueda y me aparece el error de power cobol db access control indicandome que no coinciden los tipos de datos en la expresion de criterios. ¿ Que formato le indico al CmText para que funcione la comparacion? PD. En la seleccion del campo en el control power db access me indica el formato yyyy/mm/dd pero no funciona en el cmtext Saludos. |
Cita:
De todoso modos, si he entendido bien la pregunta, si le pones "RenderText" al CmText, indica "yyyy/MM/dd" con MM en mayúsculas y te mostrará las fechas en el formato que necesitas. |
Amigo, yo muevo el "Text" del CmText a un pic 9(8). lo mismo hago, si es que me lo permite el campo de la db, y luego los comparo, o bien los trabajo de acuerdo a mi necesidad.
Saludos PD.: espero te sirva |
Cita:
Mi intencion es iniciar una busqueda por fechas . Lo interpreto como si fuera un fichero cobol indexado, es decir Siguiendo el ejemplo de Hrmcobol Código COBOL:
Aqui , funciona correctamente y cuando leo un registro , la fecha me aparece con formato yyyy/MM/dd Código COBOL:
El problema es que si quiero buscar fechas aunque el cmtext CmFecha-2 tenga un render yyyy/MM/dd me aparece un error en tiempo de ejecucion SQL error State 22005 native error code Controlador ODBC dBase No coinciden los tipos de datos en la expresion de criterios. Interpreto que es porque en la base el formato solo especifica D , y no puede comparar la busqueda por que yo lo intento con yyyy/MM/dd. Tambien lo he probado de varias maneras , pero sigue dandome error. En resumen lo que quiero hacer es poder interrogar la base de datos y quedarme o pasar una tabla cobol ( o fichero , o lo que sea ) los datos que cumpran la condicion para procesarlos. En este caso por fechas. Saludos Añadido despues de 5 minutos Cita:
Je, je, je , siempre sirven vuestras enseñanzas. Inicialmente lo que habia pensado hacer es leer toda la base dB y grabarla a un fichero cobol indexado. Proceso y supongo que todo me podria salir mas o menos correctamente. Pero pienso que realmente no se haria asi, Lo suyo seria actuar directamente sobre la base ( creo ) por esto os comentaba que no se como plantearme este reto, mi pensamiento sigue trabajando en el Rmcobol Dos, quisiera cambiar un poco el chip y aprender a trabajar de otra manera. Saludos |
Breew, la propiedad "Text" en un CmText obtiene valor sobre 8 en numérico, no coge los guiones/barras. Si en la tabla, el campo de la fecha lo tienes definido como DATE, no va a funcionar. Porque, que yo sepa, el tipo DATE en una tabla siempre lleva separadores, cual exactamente depende del formato. Por ejemplo el formato ISO es AAAA-MM-DD. Si le pones barras "/", va a dar error de formato.
Dicho esto, revisa el formato definido en la tabla. Y sea como sea que muestres las fechas en CmText, con STRING construye el formato de fecha esperado por la BBDD. Así no te dará error. ;) |
Hola.
He seguido tus instrucciones y he salvado el error, pero no me funciona, no encuentro el fallo. Quizas no sepa bien como actua. Mi intencion es que haga la seleccion por fechas , le indico una fecha minima y quisiera que se situara en ella. A partir de ella , me hiciera un avance al siguiente registro que cumpliera el mismo requisito. Código COBOL:
Se posiciona en una fecha erronea :-¿? Y el avance de registro no funciona. Código COBOL:
Cita:
|
Breew, lo que yo te decía, que mirases cómo tienes definido el campo FECHA en la tabla de la base de datos, no en tu código COBOL. Además:
Cita:
Prueba con: Código COBOL:
Por cierto, te compila con la Ñ ¿?!!! :) Nunca lo había probado. Ya me contarás ;) |
Hola Kuk.
Cita:
En la definicion del CmDb1 en FIELDS, el campo fecha lo detecta con formato yyyy/mm/dd. y en ejecucion , tanto con formato separado con guion o barra, no me da error de formato, simplemente se posiciona en el primer registro fisico de la base. Pero lo hace sin cumplir la condicion de que sea mayor que la fecha que le indico. No tengo ni idea del motivo porque no se posiciona segun la posicion. Quisiera adjuntaros la base, pero es excesivamente grande, y no tengo ninguna herramienta para editarla y poderos enviar algun registro grabado. Cita:
Por cierto la base dbf esta hecha bajo programacion del FoxPro 6.0 |
Hola Amigo, que tan grande es la base, no la puedes bajar a un DropBox?.
saludos |
Hola.
He limpiado la base de datos personales y la he subido a un dropbox. Si alguien quiere echarle un vistazo a ver porque no proceso las fechas por favor que me envie un privado y le doy las señas. Muchas gracias . |
Breew,
Tenta o seguinte SQL Código SQL:
Atenção que o formato da data é MM/DD/AAAA Espero que resolva Saludos, Rui Pinto |
1 Archivos Adjunto(s)
Cita:
Muchas gracias. |
Al mover los valores, utilizar mascara PIC 9999/99/99.
Yo tengo desarrollado unas rutinas para "descomponer" la mascara que recibe de la base de datos y volcarla a una variable PIC 9(8) en el orden que quiero que se muestre. |
| La franja horaria es GMT +2. Ahora son las 04:24. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.