Base de datos
Estoy intentando hacer una base de datos en c y no me sale(nivel de FP).
¿Tienes alguna base de datos sencillo para que lo pueda ojear?. Me harías un favor terrible.
Mi E-mail es [email protected]
¿Tienes alguna base de datos sencillo para que lo pueda ojear?. Me harías un favor terrible.
Mi E-mail es [email protected]
1 respuesta
Respuesta de tadeor
1
1
Yo lo que tengo de base de datos es en Visual C++ 6.0 y es un programa que lo que hace es consultar y quitar y añadir datos a una base de datos creada con Microsoft Access. No crea la base de datos ni modifica las tablas de la misma.
Dime si esto te vale y te envío el programa.
Dime si esto te vale y te envío el programa.
No es eso lo que yo quería pero de todas formas gracias.
Tengo una duda con un programa que he hecho y al compilarlo primeramente me pone o errores y luego me sale una señal
que me dice :
General protection exception :
0x2987: 0x3f59
Ok
Si le doy al ok me pone:
No module definition file specified:using defaults
Sabrias decirme que error o que es esto?
Tengo una duda con un programa que he hecho y al compilarlo primeramente me pone o errores y luego me sale una señal
que me dice :
General protection exception :
0x2987: 0x3f59
Ok
Si le doy al ok me pone:
No module definition file specified:using defaults
Sabrias decirme que error o que es esto?
Si este error te sale al compilar el programa que estas haciendo, desistanla el compilador y vuelve a instalarlo o si es una copia de estrangis mira a ver que este completo o le falte algo.
Si el error es al ejecutar el programa que tu intentas crear(lo cual dudo porque si da errores al compilar no tendría que generar el ejecutable, a no ser que sean warnings) con estos datos no te puedo decir nada.
EL error es porque algún puntero se va a zonas de memoria no permitidas para ese programa, como creo que el error viene del primer caso, desistanla y vuelve a instalar el compilador o consigue otro que este entero.
Si el error es al ejecutar el programa que tu intentas crear(lo cual dudo porque si da errores al compilar no tendría que generar el ejecutable, a no ser que sean warnings) con estos datos no te puedo decir nada.
EL error es porque algún puntero se va a zonas de memoria no permitidas para ese programa, como creo que el error viene del primer caso, desistanla y vuelve a instalar el compilador o consigue otro que este entero.
Lo he reinstalado otra vez pero me sigue saliendo ese error.
Todos los programas que he hecho(Base de datos) al ejecutarlo sale bien.El
problema es que quiero que quede grabado en el disco duro.Por ejemplo,
un programa que suma a+b=c:Yo quiero que ese resultado este grabado en una carpeta (no se si me explico bien).
Para eso tenemos las función FILE *(nombre del fichero).
Luego una serie de funciones (FPRINTF etc.)Es esto lo que me falla.
¿Si te mandara un programa super sencillo de ficheros ya me dirías que me pasa?
Todos los programas que he hecho(Base de datos) al ejecutarlo sale bien.El
problema es que quiero que quede grabado en el disco duro.Por ejemplo,
un programa que suma a+b=c:Yo quiero que ese resultado este grabado en una carpeta (no se si me explico bien).
Para eso tenemos las función FILE *(nombre del fichero).
Luego una serie de funciones (FPRINTF etc.)Es esto lo que me falla.
¿Si te mandara un programa super sencillo de ficheros ya me dirías que me pasa?
El problema esta localizado, muy bien, eso aunque no te lo parezca es un gran paso, ahora posibles causas.
1.- Que no se habrá bien el fichero, usa:
FILE* fichero;
fichero->open("nombre_fichero",w);
La w para write=escribir, esto si solo usas ese fichero en una ejecución o si para cada ejecución quieres borrar el contenido anterior del fichero, si lo que quieres es ir añadiendo cosas al fichero en cada ejecución cambia la w por a add=añadir.
luego ya usas fichero->write(); o fprintf(fichero,"",valores...);
2.- Esto ya lo haces y sigue fallando, mira que el directorio donde quieras crear el fichero exista, estas funciones de FILE solo crean el fichero, pero el directorio tiene que existir el no lo crea.
El problema viene que quieres usar la función fprintf con un puntero FILE que no apunta al fichero que tu quieres, entonces el programa da un error, verifica el path que le das al fichero que ya existan todos los directorios y toda el nombre del fichero este bien escrito, si estas en windows o dos construye la cadena del path con doble \:
c:\\windows\\mis_archivos\\basedatos.txt
1.- Que no se habrá bien el fichero, usa:
FILE* fichero;
fichero->open("nombre_fichero",w);
La w para write=escribir, esto si solo usas ese fichero en una ejecución o si para cada ejecución quieres borrar el contenido anterior del fichero, si lo que quieres es ir añadiendo cosas al fichero en cada ejecución cambia la w por a add=añadir.
luego ya usas fichero->write(); o fprintf(fichero,"",valores...);
2.- Esto ya lo haces y sigue fallando, mira que el directorio donde quieras crear el fichero exista, estas funciones de FILE solo crean el fichero, pero el directorio tiene que existir el no lo crea.
El problema viene que quieres usar la función fprintf con un puntero FILE que no apunta al fichero que tu quieres, entonces el programa da un error, verifica el path que le das al fichero que ya existan todos los directorios y toda el nombre del fichero este bien escrito, si estas en windows o dos construye la cadena del path con doble \:
c:\\windows\\mis_archivos\\basedatos.txt
Gracias por la respuesta .Pero tengo una comida de coco mayor:
Si yo hago este programa sale bien:
#include <stdio.h>
struct familia {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
struct familia hijos= {
"Ion",
"Iriondo",
"652534",
5
};
int main()
{
printf("%s ", hijo.nombre);
printf("%S", hijo.apellido);
printf("%d", hijo.edad);
}
Aquí no hay ningún problema .El problema es cuando tengo que meter un array en mi caso si quiero meter más hijos:
struct familia hijos[]=
{
"Ion", "Iriondo"," 652534", 5,
"Markel", "Iriondo", "652534", 8,
}
Aquí es donde me pone :Initialization is only partiality bracketed
que quiere decir este error
Si yo hago este programa sale bien:
#include <stdio.h>
struct familia {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
struct familia hijos= {
"Ion",
"Iriondo",
"652534",
5
};
int main()
{
printf("%s ", hijo.nombre);
printf("%S", hijo.apellido);
printf("%d", hijo.edad);
}
Aquí no hay ningún problema .El problema es cuando tengo que meter un array en mi caso si quiero meter más hijos:
struct familia hijos[]=
{
"Ion", "Iriondo"," 652534", 5,
"Markel", "Iriondo", "652534", 8,
}
Aquí es donde me pone :Initialization is only partiality bracketed
que quiere decir este error
Pon:
struct familia hijos[2]={
en vez de:
struct familia hijos[]={
Si no sabes cuantas estructuras vas a necesitar hasta ejecutar el programa usa asignación dinámica de memoria (el new en C++ o el malloc de C).
struct familia hijos[2]={
en vez de:
struct familia hijos[]={
Si no sabes cuantas estructuras vas a necesitar hasta ejecutar el programa usa asignación dinámica de memoria (el new en C++ o el malloc de C).
Gracias por contestarme.He probado lo que me has dicho y me dice lo mismo.
He aquí el programilla:
#include <stdio.h>
#define ELEMENTOS 3
struct tienda{
char nombre[30];
char proveedor[50];
int pc;
}
struct tienda bebidas[]=(He probado [3])
{
"coca_colas", "codasa", 125,
"Kas", "codasa", 125,
"Cerveza", "Mancisidor", 150,
}
void main()
{
int i;
for (i=0; i<ELEMENTOS; i++)
{
printf("El producto %d\n", i+1);
printf("%s", bebidas.nombre);
printf("%s",bebidas.proveedor);
printf("%d", bebidas.pc);
}
}
En este programa me sigue poniendo :Initialization is only partiality bracketed.
¿Por favor ya me ayudarías?. Muchas gracias
He aquí el programilla:
#include <stdio.h>
#define ELEMENTOS 3
struct tienda{
char nombre[30];
char proveedor[50];
int pc;
}
struct tienda bebidas[]=(He probado [3])
{
"coca_colas", "codasa", 125,
"Kas", "codasa", 125,
"Cerveza", "Mancisidor", 150,
}
void main()
{
int i;
for (i=0; i<ELEMENTOS; i++)
{
printf("El producto %d\n", i+1);
printf("%s", bebidas.nombre);
printf("%s",bebidas.proveedor);
printf("%d", bebidas.pc);
}
}
En este programa me sigue poniendo :Initialization is only partiality bracketed.
¿Por favor ya me ayudarías?. Muchas gracias
Tu problema es muy típico y te aseguro que le ocurre a mucha gente, no vemos lo que escribimos, si miras tu propio ejemplo que iba bien
struct familia {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
struct familia hijos= {
"Ion",
"Iriondo",
"652534",
5
};
Te darás cuenta que la diferencia con lo que quieres probar ahora son los ;, te falta poner el ; después de definir la estructura y después de inicializar la variable:
struct tienda{
char nombre[30];
char proveedor[50];
int pc;
}; ****** ESTE
struct tienda bebidas[]=(He probado [3])
{
"coca_colas", "codasa", 125,
"Kas", "codasa", 125,
"Cerveza", "Mancisidor", 150,
}; ******** ESTE
struct familia {
char nombre[30];
char apellido[40];
char telefono[10];
int edad;
};
struct familia hijos= {
"Ion",
"Iriondo",
"652534",
5
};
Te darás cuenta que la diferencia con lo que quieres probar ahora son los ;, te falta poner el ; después de definir la estructura y después de inicializar la variable:
struct tienda{
char nombre[30];
char proveedor[50];
int pc;
}; ****** ESTE
struct tienda bebidas[]=(He probado [3])
{
"coca_colas", "codasa", 125,
"Kas", "codasa", 125,
"Cerveza", "Mancisidor", 150,
}; ******** ESTE
Muchas gracias, me has solucionado el problema.
Una cosa más te quería preguntar.
Me pide para el trabajo que tengo que realizar :
El archivo ejecutable ha de ser creado por varios archivos de código en el que por lo menos uno de ellos sea *.h elaborado por el programador.
Hasta ahora pensaba que siempre tenia que poner stdio.h que era el fichero donde se encuentran las funciones de entrada y salida.como puedo crear otro fichero que no sea stdio. ¿h?
Una cosa más te quería preguntar.
Me pide para el trabajo que tengo que realizar :
El archivo ejecutable ha de ser creado por varios archivos de código en el que por lo menos uno de ellos sea *.h elaborado por el programador.
Hasta ahora pensaba que siempre tenia que poner stdio.h que era el fichero donde se encuentran las funciones de entrada y salida.como puedo crear otro fichero que no sea stdio. ¿h?
Esto os lo pide para que aprendáis a trabajar con varios ficheros y a juntarlos todos para crear una aplicación. Bien te explico un poco, un programa llamémoslo profesional va a usar muchos ficheros .h y muchos .c, los ficheros .h son ficheros en los que se le indica al compilador los nombres de las funciones que se van a usar y en el .c se indica al compilador que es lo que hace esa función. Entonces en tu caso tienes que tener un archivo .c en el que habrá una función main() y supongo que alguna función más que uses (o a lo mejor no porque lo has hecho todo dentro del main), entonces en el primer caso:
Crea un fichero principal. H (por ejemplo) y pon en él el #include <stdio.h> Y las declaraciones de las funciones que uses, en el fichero del main quita el include del stdio y las declaraciones de las funciones, porque ya las has declarado en el principal.h. Por ultimo añade en el fichero del main la lines #include "principal.h"
En el caso de no tener funciones pues crea el principal. H con el #include <stdio.h> Y quítalo del fichero del main y añade el #include "principal.h".
Otra cosa la diferencia entre el #include <> e #include "" es que con <> va a buscar ese archivo en los directorios donde este instalado el compilador mientras que con "" lo busca en el directorio donde estas compilando y si hay no lo encuentra se va a los directorios donde este instalado el compilador.
Crea un fichero principal. H (por ejemplo) y pon en él el #include <stdio.h> Y las declaraciones de las funciones que uses, en el fichero del main quita el include del stdio y las declaraciones de las funciones, porque ya las has declarado en el principal.h. Por ultimo añade en el fichero del main la lines #include "principal.h"
En el caso de no tener funciones pues crea el principal. H con el #include <stdio.h> Y quítalo del fichero del main y añade el #include "principal.h".
Otra cosa la diferencia entre el #include <> e #include "" es que con <> va a buscar ese archivo en los directorios donde este instalado el compilador mientras que con "" lo busca en el directorio donde estas compilando y si hay no lo encuentra se va a los directorios donde este instalado el compilador.
- Compartir respuesta
- Anónimo
ahora mismo