Vovik
Зарегистрирован: 04.05.2008 Сообщения: 57
|
Добавлено: Ср Июл 27, 2016 4:03 am Заголовок сообщения: Обновление колонки таблицы |
|
|
Надо обновить строковую колонку одной таблицы данными из другой при их (объектов обоих таблиц) географическом совмещении. Нужно уменьшить время обновления.
При n >19000 код работает более 10 минут
n = Val(mapinfo.eval(" TableInfo(" & name_table1 & ", 8) "))
For i_RowId = 1 To n
mapinfo.Do "Fetch rec " & i_RowId & " From " & name_table1
mapinfo.Do "mousexy = " & name_table1 & ".obj"
mapinfo.Do "Select * From " & name_table2 & "where obj Partly Within mousexy into ~temptruba noselect"
nt = Val(mapinfo.eval("TableInfo(~temptruba , 8 )"))
If nt >= 1 Then Call procedura_truba(nt, "id_truba_start", i_RowId)
Next
Private Sub procedura_truba(nt As Integer, colam As String, i_RowId As Long)
Dim id_truba As String, st As String
Dim i As Integer
On Error GoTo 1
For i = 1 To nt
mapinfo.Do "Fetch rec " & i & " From ~temptruba"
id_truba = mapinfo.eval("~temptruba.id")
If Val(id_truba) <> i_RowId Then st = st & id_truba & ";"
Next
If st <> "" Then mapinfo.Do "Update " & name_table1 & " Set " & colam & " = """ & Left(st, Len(st) - 1) & """ where RowId = " & i_RowId
Exit Sub
1:
End Sub |
|