• Viernes 1 de Noviembre de 2024, 10:26

Autor Tema:  Visual C++ Access  (Leído 1407 veces)

ome992

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Visual C++ Access
« en: Martes 29 de Agosto de 2006, 11:38 »
0
Hola a todos

Tengo el siguiente problema. Es la primera vez que programo un aplicación que tiene que guardar datos en una base de datos, en este caso en Access.
El problema es el siguiente. Cuando arranca la aplicación creo la base de datos con el siguiente código:

CString Orden;
CDaoDatabase db;
db.Create(PathBD);

Orden = "CREATE TABLE Tipo1(Fecha DATETIME,"
"Nombre TEXT (50),"
"Largo FLOAT,"
"Ancho FLOAT,"
"Ro1 INTEGER,"
"Tita1 INTEGER,"
"Ro2 INTEGER,"
"Tita2 INTEGER,"
"PRIMARY KEY (Fecha))";//Tipo1
db.Execute(Orden);
db.Execute(Orden);
db.Close();

Después se lanza un hilo que al intentar guardar datos en la base de datos me produce una excepción al intentar abrir la base de datos. El código que uso para intentar guardar los datos es el siguiente:

CDaoDatabase db;
db.Open(PathBD);
db.Execute(Orden);
db.Close();

Gracias por la ayuda

diego.martinez

  • Miembro MUY activo
  • ***
  • Mensajes: 297
    • Ver Perfil
Re: Visual C++ Access
« Respuesta #1 en: Martes 29 de Agosto de 2006, 16:47 »
0
ummm

es el unico hilo que accede a la base de datos?

si no lo es podria haber algun conflicto de acceso (varios hilos intentan acceder a la vez), podrias usar Mutex, si es eso me dices y te paso un ejemplo de como usar los mutex

le pasas  el Path por parametro al thread o es global?

que tipo de excepción es?

Cual es la Orden que usas para salvar?

Se crea la tabla?

db.Execute(Orden);
db.Execute(Orden);   con esto creas 2 tablas que se llaman igual?

espero poder ayudar

ome992

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Visual C++ Access
« Respuesta #2 en: Martes 29 de Agosto de 2006, 18:14 »
0
Esta línea está repetida db.Execute(Orden);

El programa lo estoy probando de forma sencilla. Lanzo un hilo que crea la base de datos y termina el hilo. Luego lanzo otro hilo para escribir en ella y el error me lo da al intentar abrir la base de datos. Me saca el siguiente mensaje

Excepción no controlada en 0x004d4699 en WorkerThread1.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0x1b7ad574.

La ruta la tiene el código del hilo. Es fija.