Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

BD relacional + Adodc

Estas en el tema de BD relacional + Adodc en el foro de Visual Basic clásico en Foros del Web. Tengo una bd relacionaral con una tabla padre y una tabla hijo. Quiero que la tabla hijo me tome el valor del ID del padre ...
  #1 (permalink)  
Antiguo 23/09/2005, 14:05
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
BD relacional + Adodc

Tengo una bd relacionaral con una tabla padre y una tabla hijo.

Quiero que la tabla hijo me tome el valor del ID del padre con el cual se relacionan.

Estoy ocupando adodc

Por lo que ley tengo que "marcar" pero con adodc no puedo hacerlo.

No me deja ocupar .LastModified

Por ejemplo:
With adoPadreID.Recordset
.fields("id_padre") = intCodigo
.fields("id_Nombre") = strNombre
.Update
.Bookmark = adoPadreID.Recordset.LastModified
end with
adPadreId..Refresh

With adohijo.Recordset
.fields("id_Hijo") = intCodigo
.fields("id_Padre") = adoPadreId.recordset.fields("id_padre")
.fields("id_Nombre") = strNombre
.Update
.Bookmark = adoPadreID.Recordset.LastModified
end with

la linea roja es como marcan otro tipo de conecciones...
cual sería para esta???
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #2 (permalink)  
Antiguo 23/09/2005, 14:18
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
la manera que lo podes hacer es con un Shape.

aca defino un shape

Código:
'la opcion sqlsrv es mi dns de sistema para conectarme al sql2000
BasePathShape = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;dsn=sqlsrv;uid=;pwd=;database=FACTURACION;"

 datPrimaryRS.ConnectionString = BasePathShape ' variable hacia la db

 datPrimaryRS.RecordSource = "SHAPE {select id_cuenta_registro,no_registro,fecha_ingreso,hora_ingreso,id_huesped,id_tipo_huesped,tipo_cambio,valoriva,inguat,destino,observaciones,cancelado from pricipal_registros Where cancelado = 0 Order by no_registro} AS ParentCMD APPEND ({select id_cuenta_registro,id_habitacion as Habitacion,no_personas as 'No. Pax',fecha_ingreso As 'Ingreso',fecha_salida As 'Salida',valorhabitacion As 'Valor Hab.',Anulado,observaciones_hab As Observaciones from registro_huesped Order by id_habitacion } AS ChildCMD RELATE id_cuenta_registro TO id_cuenta_registro) AS ChildCMD"
    datPrimaryRS.Refresh ' refresco el control
    
Set grdDataGrid.DataSource = datPrimaryRS.Recordset("ChildCMD").UnderlyingValue ' aca asigno la tabla hija a un datagrid 
si te das cuenta donde dice relate unifico las dos tablas por las llaves
RELATE id_cuenta_registro TO id_cuenta_registro
nos vemos espero te sirva el ejemplo
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila

Última edición por GeoAvila; 23/09/2005 a las 14:28
  #3 (permalink)  
Antiguo 23/09/2005, 15:50
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
pero como lo hago si aun no he ingresado al hijo


With adoPadreID.Recordset
.addnew
.fields("id_padre") = intCodigo
.fields("id_Nombre") = strNombre
.Update
.Bookmark = adoPadreID.Recordset.LastModified
end with
adPadreId..Refresh

realice eñ ejemplo pero no puedo ponerlo en una data grid por lo que acabo dedecir aun no estan los datos de la tabla hijo
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #4 (permalink)  
Antiguo 25/09/2005, 19:56
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
Tendre que ocupar un porcedimiento almacenado o algo asi??? aunque este usando el ADODC??? ayuendeme pliss :(

necesito saber como conocer el id de la tabla Padre al insertar los datos de la tabla hijo
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
  #5 (permalink)  
Antiguo 25/09/2005, 20:58
Avatar de netorres  
Fecha de Ingreso: marzo-2004
Ubicación: 32 kms de Santiago a la costa
Mensajes: 132
Antigüedad: 20 años, 1 mes
Puntos: 0
he realizado pruebas y tampoco me fuciona de esta forma:

adodcvinas.ConnectionString = "DSN=LocalServer"
adoCuartel.ConnectionString = "DSN=LocalServer"

strSql = "SELECT * FROM vina"
adodcvinas.RecordSource = strSql
adodcvinas.Refresh

strSql = "SELECT * FROM documentovendimiatipo "
adoCuartel.RecordSource = strSql
adoCuartel.Refresh


With adodcvinas.Recordset
adodcvinas.Recordset.AddNew
adodcvinas.Recordset.Fields("id_usuario") = Text1(0).Text
adodcvinas.Recordset.Fields("id_productor") = Text1(1).Text
adodcvinas.Recordset.Fields("vi_Codigo") = Text1(2).Text
adodcvinas.Recordset.Fields("vi_Nombre") = Text1(3).Text
adodcvinas.Recordset.Fields("vi_categoria") = Text1(4).Text
.Update
End With
sql = "select max(id_vina) as id_vina_max from vina"
adodcvinas.RecordSource = sql
adodcvinas.Refresh

With adoCuartel.Recordset
adoCuartel.Recordset.AddNew
adoCuartel.Recordset.Fields("id_vina") = adodcvinas.Recordset.Fields("id_max_vinas") adoCuartel.Recordset.Fields("id_usuario") = 1
adoCuartel.Recordset.Fields("cu_Nombre") = "cu1"
.Update
End With
End Sub



Me da el siguiente error:

3265

"No se encontro el elemento en la coleccion que corresponde con el nombre o el ordinal pedido"
__________________
Contento Señor contento :-) (Sto. Padre Alberto Hurtado)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:47.