|
Mostrar Mensajes
|
Páginas: [1] 2
|
2
|
Programación / .NET (C#, VB.NET, ASP) / Leer y escribir en archivo .mdb de access con C++
|
en: 8 Marzo 2013, 14:40 pm
|
Buenas tardes a todos, tengo un programa en C++ que prepara unos archivos y al final crea un listado de estos, el problema es que el ultimo paso que me falta es escribir los datos del listado en una de las tablas que se encuentra dentro de una base de datos .MDB con contraseña, creada en access. He estado leyendo en algunos foros y paginas de microsoft que dependiendo del tipo de base de datos (sea ADO, ADO.NET, ODBC, OLE, etc) hay que anexar a la libreria del codigo C++ el controlador .dll para el tipo de base de datos; pero yo solo se que es un archivo .MDB y que se ha creado en access.
Por lo que he visto hay muchos tipos de bases de datos e incluso programas que las gestionan y que tienes que conectarte al programa para poder acceder a los datos y eso, pero lo que yo tengo es un simple archivo .MDB que quisiera poder abrir y escribir (Si, soy un cero a la izquierda en bases de datos).
Alguien podria darme alguna pista de como se hace? Muchas gracias de antemano.
EI: juntando mensajes.
Hola, publico un poco mi avance por si a alguien le sirve.
Estoy haciendo un programa con windows forms en visual c++ 2008 y hasta ahora he conseguido abrir la bd con contraseña y crear una tabla desde mi programa.
Lo que hay que hacer es lo siguiente:
declarar al principio del programa principal (no se si esta bien dicho declarar):
using namespace System::Data::OleDb;
//Luego en el boton que quieras que realize la tarea:
OleDbConnection^ conexión = gcnew OleDbConnection(); conexión->ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=mibasedatos.MDB;Jet OLEDB:Database Password=contraseña"; conexión->Open();
//el provider depende del tipo de bd a la que te quieres conectar. Hay varios parametros que podemos pasar a ConnectionString (Provider, Data Source, Database Password), lo que no entiendo es por que en la pagina de microsoft solo mencionan un par de ellos y hay que buscarse la vida y ver cual es el que uno necesita. lo de Jet OLEDB:Database Password lo encontre de casualidad googleando.
//luego: String^ strcomando = "CREATE TABLE tabla1 (nombres CHAR, apellidos CHAR);";
//el comando CREATE TABLE es de sql access que hay que utilizar y pasarselo al programa para que cree la tabla. OleDbCommand^ comando = gcnew OleDbCommand(strcomando,conexión); comando->ExecuteReader();
conexión->Close();
Ahora me falta seguir buscando los comandos de sql access para escribir o borrar cosas en las tablas de mi bd. Un saludo.
|
|
|
5
|
Programación / Programación C/C++ / Re: Busqueda desde txt en C++
|
en: 4 Abril 2012, 20:08 pm
|
Hola, ya lo he resuelto gracias a tu ayuda, funciona lo mas importante, ahora solo falta pulirlo, es cuestión de modificar un poco el bucle. muchas gracias me quedó así: #include <stdio.h> #include <string.h>
int main() { char var1[20]; char linea[50]; char token[5] = ";"; char *ptr; FILE *listado; listado = fopen("lista.txt", "r");
while (fscanf(listado,"%s", linea)!=EOF) { printf( "linea=%s\n", linea ); ptr = strtok( linea, token ); sprintf(var1,"%s",ptr); printf("en variable %s\n", var1); while( (ptr = strtok( NULL, token )) != NULL ) { sprintf(var1,"%s",ptr); printf("en variable %s\n", var1); } } return 0; }
|
|
|
6
|
Programación / Programación C/C++ / Re: Busqueda desde txt en C++
|
en: 4 Abril 2012, 17:29 pm
|
Otra vez me he atascado , ahora el problema es que tengo el listado: arc_201201.txt;10;20;30 arc_201202.txt;11;22;33 arc_201203.txt;12;23;34 arc_201204.txt;13;25;36 y no encuentro la manera de pasar los campos separados por el ";" a una variable para luego pasarla a la función. he intentado hacerlo con un bucle con fgetc para que lea hasta encontrar el separador o el salto de linea pero esta funcion devuelve solo un caracter a la vez. alguna idea de como podría hacerlo. Gracias y saludos.
|
|
|
9
|
Programación / Programación C/C++ / Re: Problemas con salto de lineas al leer un fichero
|
en: 3 Abril 2012, 17:41 pm
|
Hola este código me parece muy útil, por lo que entiendo se esta tomando los caracteres entre las separaciones "/" y se devuelven como enteros, por lo que "numero_primo" tendría que estar declarado al inicio como tal verdad?. Pero y si tuviera cadenas entre las separaciones (cad1/cad2/cad3/cad4), como podria hacer para tomar cada cadena y pasarla a una variable?, en este caso ya no se podria usar fgetc o me equivoco?
|
|
|
10
|
Programación / Programación C/C++ / Busqueda desde txt en C++
|
en: 3 Abril 2012, 17:10 pm
|
Buenas tardes a todos tengo un problema con un programa que lee desde un listado txt los nombres de unos archivos, luego llama a una funcion que intenta abrirlos uno a uno para considerar si existen o no. El problema es que si escribo directamente el nombre del archivo en el programa lo encuentra, pero si lo lee desde el listado, lo mete en un string y se lo pasa a la función no lo hace. Alguna idea de donde puede estar el fallo?. Gracias de antemano El listado tiene esta forma: arc_2012041 arc_2012042 arc_2012043 arc_2012044 y el programa es este: #include <stdio.h>
//funcion de existencia void existe(char archivo[60]);
//programa principal int main () { char archivo1[30]; char ruta[60];
FILE *listado;
listado = fopen("lista.txt", "r"); if (listado==NULL) { printf("No se encuentra el listado\n"); return 1; }
while (fgets(archivo1, 30, listado)!=NULL) { sprintf(ruta,"D:\\carpeta\\%s",archivo1); existe(ruta); } fclose(listado); return 0; }
//funcion de existencia void existe(char archivo[60]) { FILE *faux;
faux = fopen(archivo, "r"); if (faux==NULL) printf("archivo no encontrado\n"); else { printf("archivo encontrado\n"); fclose(faux); } }
|
|
|
|
|
|
|