Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-02-2007
Blackspike Blackspike is offline
Miembro
 
Registrado: dic 2006
Ubicación: Mallorca, Baleares
Posts: 29
Poder: 0
Blackspike Va por buen camino
Problemas al Crear MDB con Access

Buenos dias, tengo un problema con delphi 7, estoy haciendo una aplicacion, donde hay unas empresas y cada empresa puede tener unos años, cada año es una base de datos mdb. El problema que tengo es que cuando genero la Base de Datos MDB no se como poner el campo clave. Espero que alguien me pueda ayudar.
Os paso lo que tengo puesto en el codigo. Gracias de antemano.

Código Delphi [-]
 
procedure TfrmEmpresas.CrearMDB(ruta: string);
var
  Catalogo:_Catalog;
  Tabla:_Table;
  DS:String;
begin
    Catalogo:=CreateComObject(StringToGUID('ADOX.Catalog')) as _Catalog;
    DS:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '+ruta;
    if FileExists(ruta) then DeleteFile(ruta);
    Catalogo.Create(DS);
    Tabla:=CreateComObject(StringToGUID('ADOX.Table')) as _Table;
    Tabla.Name:='Acabados';
    Catalogo.Tables.Append(tabla);
{campo clave}    Tabla.Columns.Append('Codigo',varInteger,4);
    Tabla.Columns.Append('Descripcion',adVarWChar,50);
    Tabla:=CreateComObject(StringToGUID('ADOX.Table')) as _Table;
    Tabla.Name:='Articulos';
    Catalogo.Tables.Append(tabla);
{campo clave}    Tabla.Columns.Append('Codigo',adVarWChar,15);
    Tabla.Columns.Append('Descripcion',adVarWChar,255);
    Tabla.Columns.Append('Coste',varInteger,255);
    Tabla.Columns.Append('Venta',varInteger,255);
    Tabla.Columns.Append('Tipo',varInteger,255);
end;

Última edición por Blackspike fecha: 20-02-2007 a las 19:31:27.
Responder Con Cita
  #2  
Antiguo 20-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Rta. Campo Clave

Núnca creé una BD de esta manera, pero lo que propones podés hacerlo mediante un Alter Table
Así:
Ya sea por un TAdoQuery, TQuery o lo que mas te guste.

sSQL :String;
sSQL := 'ALTER TABLE Articulos ADD CONSTRAINT NombrePK PRIMARY KEY (Codigo)';

Donde NombrePK es el nombre (Opcional sino poné PRIMARYKEY a todas y listo) y entre paréntesis los campos que incluyen en la PK.

Query.SQL.Text := sSQL;
Query.Execute;

Ojo fijate bien la sintaxis del Query, ya que no tengo Delphi acá, como para probar y darte un ejemplo válido. Pero ha de funcionar.

Salu2 y espero te sirva mi Rta.
Walter


Juás acá me robé un pedazo de código de un execute hihi
con lo cual te quedará así:
Query1.Sql.Clear;
Query1.Sql.Text := sSQL;
Query1.ExecSQL;

No puedo probarlo.

Última edición por waly2k1 fecha: 20-02-2007 a las 22:26:35.
Responder Con Cita
  #3  
Antiguo 20-02-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Igual te resulta más fácil copiar un mdb vacío, o el del último año, vaciar las tablas qu necesites y compactarla.

Sólo tienes que probarlo.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #4  
Antiguo 21-02-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.321
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Creo que puedes utilizar el objeto 'ADOX.Key' para añadir la clave primaria a la tabla.
Revisa esta página; Aquí puedes ver un ejemplo de cómo se hace para crear una clave primaria, una clave foránea y algunas cosas más.

De todas formas, creo (como ya te han dicho) que es más sencillo si creas la SQL y la lanzas con un ADOQuery para crear la tabla.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 27-02-2007
Gagiel Gagiel is offline
Miembro
 
Registrado: ene 2007
Posts: 27
Poder: 0
Gagiel Va por buen camino
Hola,

Me estoy valiendo de vuestras ayudas
he seguido los consejos para crear una bd nueva y llenarla con tablas y formularios.
El tema esta en que quiero crear una tabla con autoindex y autonumerica (incrementalmente)
Buscando por msdn he encontrado las funciones para crear las bd en access pero al ponerle la propiedad 'Autoincrement' me dice delphi k eso no existe.

Os pongo un trozo del codigo.
Código:
Tabla.Columns.Append('Ordre',adInteger, 255);
Tabla.Columns.Item['Ordre'].Properties.AutoIncrement := True;
Responder Con Cita
  #6  
Antiguo 27-02-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 18
waly2k1 Va por buen camino
Rta.

En sentencias SQL debes usar identity Not Null. Fijate la sintaxis porque además podés especificar de cuanto en cuanto va el autoincremental.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear BD de forma dinamica en Access Coco_jac Varios 2 02-06-2005 19:47:00
Crear tablas vinculadas en BD Access castelaogz Conexión con bases de datos 0 11-03-2004 12:36:47
problemas con access piloto49er Conexión con bases de datos 1 03-02-2004 13:05:55
Crear campo en bbdd access en ejecucion Masu Conexión con bases de datos 1 07-01-2004 19:52:59
crear txt con datos access joanajj Conexión con bases de datos 4 10-09-2003 16:30:23


La franja horaria es GMT +2. Ahora son las 00:07:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi