|
|
Tema Anterior :: Tema siguiente
|
| Autor |
Mensaje |
sdemingo
Registrado: 27 Sep 2005 Mensajes: 4
|
Publicado: Jue 03 Nov 2005, 11:54 Asunto: Conseguir FeatureID (MapObjects LT y VB6) |
|
|
Hola a tod at s,
tengo mi proyecto casi acabado y me acabo de encontrar con un problema de los gordos
En una parte del mismo tengo que leer con Visual Basic 6 un dbf, añadirle varias columnas e insertar valores en dichas columnas.
Bueno, todo funciona bien a través de tablas temporales, cerrando layers, etc...
El problema viene cuando, por ejemplo, en un Shape de líneas (ríos) tengo, por ejemplo, 19 elementos gráficos en el shp asociados a sus respectivos 19 registros del dbf IGUALES, es decir, los campos originales son Nombre_Río, Cod_Río y Longitud. Dicho río viene digitalizado en distintas líneas, con lo que cada registro tiene exactamente los mismos valores en sus tres campos.
Cuando yo quiero introducir valores en los campos que me he creado nuevos, interpreta los 19 registros iguales como uno solo y me da el siguiente error 'Información de columna clave insuficiente o incorrecta; demasiadas filas afectadas por la actualización.'
El código, resumido, es:
| Código: |
oConexion.ConnectionString = "Driver={Microsoft dBASE Driver (*.dbf)};Persist Security Info=False;Dbq=" & App.Path
oConexion.CursorLocation = adUseClient
oConexion.Open
i = 1
rs.Open "select * from rios", oConexion, adOpenDynamic, adLockOptimistic
If rs.RecordCount <> 0 Then
Do While Not rs.EOF
rs.Fields("TIPO_N").Value = "LH" & i
i = i + 1
rs.MoveNext
Loop
End If
rs.MoveFirst
rs.Update
rs.Close
|
Me actualiza bien los 7 primeros registros, pero al llegar al octavo (que es igual que el 9º y el 10º y así hasta el 25) cuando asigno al campo el valor, me actualiza 19 registros de golpe, y al hacer el MoveNext del RecordSet me da ese error.
Si tuviera un campo clave que fuera único para cada registro ´no habría problema, pero el único campo clave que hay es el FeatureID (FID) el cual no veo nada más que abriendo el shape con ArcMap por ejemplo.
Si abro el dbf con Visual Fox Pro, o Excel no me muestra el FID.
¿¿¿Alguien sabe cómo podría con Visual Basic 6 conseguir el valor del FID para cada registro de un DBF???
Miles de gracias a tod at s
Sergio |
|
| Volver arriba |
|
 |
tomas.fsevilla Administrador del Foro
Registrado: 28 Mar 2004 Mensajes: 2958
|
Publicado: Mie 09 Nov 2005, 01:22 Asunto: |
|
|
Desde un punto de vista de análisis, el problema parece estar en el diseño de esa tabla, ya que no se pueden identificar distintas entidades (arcos) por el mismo identificador, que a su vez corresponde a la entidad que forma dichos arcos.
Debería haber una relación intermedia de los arcos (topológicamente hablando) que forman el río con dicha entiendad.
¿no te parece? |
|
| Volver arriba |
|
 |
|
|
|
|
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro No puede adjuntar archivos en este foro No Puede descargar archivos de este foro
|
|