Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2007
Gagiel Gagiel is offline
Miembro
 
Registrado: ene 2007
Posts: 27
Poder: 0
Gagiel Va por buen camino
Creo que he formulado mal las preguntas....

Queria decir autonumerico, osea automatico, que no tenga yo que ir poniendo valores.

No se si me explico...

Saludos
Responder Con Cita
  #2  
Antiguo 28-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: 19.437
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
Código Delphi [-]
...
          
           Col := CreateOLEObject('ADOX.Column');
          Col.ParentCatalog := Cat;
          Col.Name := sKey;
          Col.Type := adInteger;
          Col.Properties('Autoincrement') := True;
          Table.Columns.Append(Col);

Me olvidé de colocar el Link.
__________________
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
  #3  
Antiguo 01-03-2007
Gagiel Gagiel is offline
Miembro
 
Registrado: ene 2007
Posts: 27
Poder: 0
Gagiel Va por buen camino
Hola,

No me funciona el codigo que has pegado, me he mirado la web i no soy capaz de arrancarlo.
Además con el ejemplo que me has pasado tengo que crear una conexión nueva...
Otra cosa,cuando añado una columna tengo que poner todo este carro:
Código:
Tabla.Columns.Append(columna, adInteger, 255);
si intento poner
Código:
Tabla.Columns.Append(columna);
me dice que le faltan parametros.
Sigo sin conseguir poner el campo automatico
Responder Con Cita
  #4  
Antiguo 01-03-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: 19.437
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
Vamos a ver, no puede ser tan difícil.
Basándome en el código inicial, y añadiendo dos columnas, una para PK y otra para un campo entero Autoincremental queda así:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Catalog  : _Catalog;
  Table    : _Table;
  BaseName : String;
  DS       : String;
  col      : _Column;
  key      : _Key;
begin
  // Nombre de la Base de Datos
  BaseName := 'C:\Temp\MiBaseDatos.mdb';
  // Create a Catalog Object
  Catalog := CreateCOMObject(StringToGUID('ADOX.Catalog')) as _Catalog;
  // Set the Connection String
  DS := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+BaseName;
  // Check if we already have such a file and delete it
  If FileExists(BaseName) Then begin
    DeleteFile(BaseName);
  end;

  // Create new Access database
  Catalog.Create(DS);

  // Create a Table Object
  Table := CreateCOMObject(StringToGUID('ADOX.Table')) as _Table;
  // Set the name of a table
  Table.Name := 'MiTabla';
  // Append Table into the base
  Catalog.Tables.Append(Table);
  // Now add two columns (fields) into the table
  // Both are Text fields up to 128 characters
  Table.Columns.Append('Nombre', adVarWChar, 128);
  Table.Columns.Append('Apellido', adVarWChar, 128);

  // Creamos el objeto columna para el autoIncremental
  col := CoColumn.Create;
  // BD a la que pertenece
  col.ParentCatalog := Catalog;
  col.Name := 'Auntoincremental';
  // Tipo del campo
  col.Type_ := adInteger;
  // Asignamos que es un AutoIncremental
  col.Properties['AutoIncrement'].Value := True;
  // Añadimos la columna
  Table.Columns.Append(col, adInteger, col.DefinedSize);

  // Columna para la clave primaria
  col := CoColumn.Create;
  // BD a la que pertenece
  col.ParentCatalog := Catalog;
  col.Name := 'ClavePrimaria';
  col.Type_ := adInteger;
  // Añadirla
  Table.Columns.Append(col, adInteger, col.DefinedSize);

  // Creamos la clave primaria
  Key := CoKey.Create;
  Key.Name := 'ClavePrimaria';
  Key.Type_ := adKeyPrimary;
  // Columna que forma parte de la PK
  Key.Columns.Append('ClavePrimaria', adInteger, 0 );
  // Añadirla a la tabla
  Table.Keys.Append(Key, 0, EmptyParam, Unassigned, Unassigned);
end;

Añade al uses ADOX_TLB y ComObj.
A mi me crea la tabla perfectamente con los 4 campos.

Pruébalo y dime algo.

La prueba "del delito".
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 01-03-2007 a las 13:06:31.
Responder Con Cita
  #5  
Antiguo 02-03-2007
Gagiel Gagiel is offline
Miembro
 
Registrado: ene 2007
Posts: 27
Poder: 0
Gagiel Va por buen camino
Hola!

Muchas gracias!
Funciona a la perfección, el tema estaba en que no usaba las propiedades de Col para definir sus propiedades.

Gracias nuevamente! Eres el Rey!

Saludos!
Responder Con Cita
  #6  
Antiguo 02-03-2007
Gagiel Gagiel is offline
Miembro
 
Registrado: ene 2007
Posts: 27
Poder: 0
Gagiel Va por buen camino
Holaaaa
Aki el pesado de turno :s

Quiero poner una contraseña a la BD que he creado (o al crearla)

He puesto esto:
Código:
  ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User=Admin;Password=123456;Data Source=' +DATABASENAME;
Pero no funciona, lo he probado sin el user i tampoco funciona.

Saludos!
Responder Con Cita
  #7  
Antiguo 08-05-2007
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 21
MaMu Va por buen camino
Cita:
Empezado por Neftali
Vamos a ver, no puede ser tan difícil.
Basándome en el código inicial, y añadiendo dos columnas, una para PK y otra para un campo entero Autoincremental queda así:


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
Catalog : _Catalog;
Table : _Table;
BaseName : String;
DS : String;
col : _Column;
key : _Key;
begin
// Nombre de la Base de Datos
BaseName := 'C:\Temp\MiBaseDatos.mdb';
// Create a Catalog Object
Catalog := CreateCOMObject(StringToGUID('ADOX.Catalog')) as _Catalog;
// Set the Connection String
DS := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+BaseName;
// Check if we already have such a file and delete it
If FileExists(BaseName) Then begin
DeleteFile(BaseName);
end;

// Create new Access database
Catalog.Create(DS);

// Create a Table Object
Table := CreateCOMObject(StringToGUID('ADOX.Table')) as _Table;
// Set the name of a table
Table.Name := 'MiTabla';
// Append Table into the base
Catalog.Tables.Append(Table);
// Now add two columns (fields) into the table
// Both are Text fields up to 128 characters
Table.Columns.Append('Nombre', adVarWChar, 128);
Table.Columns.Append('Apellido', adVarWChar, 128);

// Creamos el objeto columna para el autoIncremental
col := CoColumn.Create;
// BD a la que pertenece
col.ParentCatalog := Catalog;
col.Name := 'Auntoincremental';
// Tipo del campo
col.Type_ := adInteger;
// Asignamos que es un AutoIncremental
col.Properties['AutoIncrement'].Value := True;
// Añadimos la columna
Table.Columns.Append(col, adInteger, col.DefinedSize);

// Columna para la clave primaria
col := CoColumn.Create;
// BD a la que pertenece
col.ParentCatalog := Catalog;
col.Name := 'ClavePrimaria';
col.Type_ := adInteger;
// Añadirla
Table.Columns.Append(col, adInteger, col.DefinedSize);

// Creamos la clave primaria
Key := CoKey.Create;
Key.Name := 'ClavePrimaria';
Key.Type_ := adKeyPrimary;
// Columna que forma parte de la PK
Key.Columns.Append('ClavePrimaria', adInteger, 0 );
// Añadirla a la tabla
Table.Keys.Append(Key, 0, EmptyParam, Unassigned, Unassigned);
end;





Añade al uses ADOX_TLB y ComObj.
A mi me crea la tabla perfectamente con los 4 campos.

Pruébalo y dime algo.

La prueba "del delito".
ADOX_TLB ????!?!?!? de donde puedo sacar esa DCU ??? no lo tengo, y necesito crear un MDB por soft.

Te agradezco de antemano.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 08-05-2007
Blackspike Blackspike is offline
Miembro
 
Registrado: dic 2006
Ubicación: Mallorca, Baleares
Posts: 29
Poder: 0
Blackspike Va por buen camino
Mira en este enlace. Te dice como hacerlo.
Espero que te sirva.
http://www.cwgsy.net/private/gocher/samples/adox.htm
Responder Con Cita
  #9  
Antiguo 08-05-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: 19.437
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
En esta página tienes un ejemplo (Crear un MDB de Access por código) de cómo hacerlo; Te explica cómo importas la librerías para que genere ese fichero
__________________
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 04:43:23.


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