 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Vie 25 Mar, 2011 12:43 am Asunto: Crear tabla Paradox con contraseña |
|
|
Hola a todos,
Después de mirar y remirar no consigo encontrar la forma de crear una tabla paradox con contraseña, desde el DBD se le puede añadir una, pero necesito crearla desde código, he encontrado esto en Delphi, pero no me entero de nada, alguien sabría traducirlo a C++?
Os dejo el código por si alguien lo entiende.
Un abrazo.
Carlos
******************************************************
procedure AddMasterPassword(Table: TTable; pswd: string);
const
RESTRUCTURE_TRUE = WordBool(1);
var
TblDesc: CRTblDesc;
hDb: hDBIDb;
begin
if (Table.Active = False) or (Table.Exclusive = False) then
raise EDatabaseError.Create('La Tabla debe estas abierta en modo exclusivo.....');
FillChar(TblDesc, SizeOf(CRTblDesc), 0);
with TblDesc do
begin
StrPCopy(szTblName, Table.TableName);
StrCopy(szTblType, szPARADOX);
StrPCopy(szPassword, pswd);
bProtected := RESTRUCTURE_TRUE;
end;
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
Table.Close;
{Asicionar el PW a la Tabla}
Check(DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, FALSE));
{Adicionar el PW a Session}
Session.AddPassword(pswd);
{ Abrir nuevamente la tabla}
Table.Open;
end; |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 26 Mar, 2011 5:31 am Asunto: |
|
|
Viendo el código, lo unico que hace es crearle un Password a la Session de conexión de las tablas.
En Relativa, este procedimiento solo sirve para establecer password a las tablas que pertenecen a determianda Session, dentro del componente existe un evento OnPassword, que es el que se encarga de activar un cuadro de dialgo, para acceder a las tablas.
Para usar esta función, solo debes agregar algo como esto dentro de tu programa.
| Código: | Session->AddPassword("ccsgClave12345@"); |
Esto agrega la contraseña ccsgClave12345@ a la session que tengas activa, cada vez que te conectes, va a pedirte que introduzcas esa contraseña, solo funciona para Sessiones de Paradox, o tablas de Dbase que requieran una contraseña.
Saludos. _________________
 |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Dom 27 Mar, 2011 12:26 am Asunto: |
|
|
Cesar,
Vaya, pensaba que asi podria añadir password a la tabla, no a la sesion, me interesa crear una tabla con un password, igual que hago en el dbd pero directamente desde codigo, se te ocurre como?
Un abrazo
Carlos |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 27 Mar, 2011 12:56 am Asunto: |
|
|
| Carlos J. Fernandez escribió: | he encontrado esto en Delphi, pero no me entero de nada, alguien sabría traducirlo a C++?
|
| Código: | void AddMasterPassword(TTable* Table, AnsiString pswd)
{
if (!Table->Active || !Table->Exclusive)
throw EDatabaseError("La Tabla debe estar abierta en modo exclusivo...");
CRTblDesc TblDesc;
ZeroMemory(&TblDesc, sizeof(CRTblDesc));
strcpy(TblDesc.szTblName, Table->TableName.c_str());
strcpy(TblDesc.szTblType, szPARADOX);
strcpy(TblDesc.szPassword, pswd.c_str());
TblDesc.bProtected = TRUE; // RESTRUCTURE_TRUE
hDBIDb hDb;
Check(DbiGetObjFromObj(hDBIObj(Table->Handle), objDATABASE, hDBIObj(hDb)));
Table->Close();
// Asignar el PW a la Tabla
Check(DbiDoRestructure(hDb, 1, &TblDesc, 0, 0, 0, FALSE));
// Añadir el PW a Session
Session->AddPassword(pswd);
// Abrir nuevamente la tabla
Table->Open();
} |
|
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 29 Mar, 2011 12:09 am Asunto: |
|
|
Muchas gracias Leo,
Voy a probarlo y te cuento.
Un abrazo.
Carlos |
|
| Volver arriba |
|
 |
Carlos J. Fernandez Master


Registrado: 27 Oct 2004Mensajes: 574
|
Publicado: Mar 29 Mar, 2011 4:11 pm Asunto: |
|
|
Leo,
Funciona de maravilla, eres una maquina tío.
Muchísimas gracias por todo.
Carlos |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|