• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Поиск с пом Ftserach

  • Автор темы SkyRanger
  • Дата начала
S

SkyRanger

В общем я произвожу импорт из старой БД, там таблицы связаны через ID, у меня удается импортить их отдельно, но нужно после импорта подчиненой таблицы найти ID в главной таблице и сделать подчиненый создаваемый документ респондом на главный:

Вот мой код:

Код:
	Dim con As New ODBCConnection 'Соединение с источником данных
Dim query As New ODBCQuery 'Запрос к источнику данных
Dim resultSet As New ODBCResultSet 'Набор данных, получаемый в результате выполнения запроса
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim docX As NotesDocument
Dim adoc As NotesDocument
Dim workspace As New NotesUIWorkspace
Dim Vec As notesViewEntryCollection 
Dim entry As NotesViewEntry
Dim collection As NotesDocumentCollection

Dim fd As NotesDocumentCollection

Dim tempString As String, code As Long

Set db = session.CurrentDatabase	

If Not con.ConnectTo("fams") Then
Messagebox "Could not connect to fams"
Exit Sub
End If

query.SQL = "SELECT * FROM child"

Set query.Connection = con
Set resultSet.Connection = con
Set resultSet.Query = query

resultSet.Execute

If resultSet.IsResultSetAvailable Then
Do
Call resultSet.NextRow
Set doc = New NotesDocument(db)
doc.Form = "reg_card_child"

Call doc.ReplaceItemValue ("card_no", resultSet.GetValue("Cid") )		

Call doc.ReplaceItemValue ("fid", resultSet.GetValue("fid") )

Call doc.ReplaceItemValue ("fam", resultSet.GetValue("fam") )			
Call doc.ReplaceItemValue ("nam", resultSet.GetValue("nam") )
Call doc.ReplaceItemValue ("otc", resultSet.GetValue("otc") )
Call doc.ReplaceItemValue ("date_r", resultSet.GetValue("d_birth") )

Call doc.ReplaceItemValue ("place_r", resultSet.GetValue("p_birth") )

Call doc.ReplaceItemValue ("pol", resultSet.GetValue("pol") )

Call doc.ReplaceItemValue ("place_r", resultSet.GetValue("p_birth") )

Call doc.ReplaceItemValue ("ucheb_zaved", resultSet.GetValue("sid") )

Call doc.ReplaceItemValue ("prich_uchet", resultSet.GetValue("prich_uch") )

'			Call doc.ReplaceItemValue ("place_r", resultSet.GetValue("p_birth") )

'Call doc.ReplaceItemValue ("date_reg", resultSet.GetValue("acc_date") )

Print "Begin searching for id="+Str(resultSet.GetValue("fid"))+" search val = FIELD card_no="+Trim(Str(resultSet.GetValue("fid")))

Set collection = db.FTSearch("regcard",1000)
Call collection.FTSearch("FIELD card_no="+Trim(Str(resultSet.GetValue("fid"))),1000)

Print "I find "+Str(collection.count)+" documents"

doc.Save True, False
Loop Until resultSet.IsEndOfData
resultSet.Close
End If
con.Disconnect

Пока я его еще не закончил у меня проблема с поиском

Call collection.FTSearch("FIELD card_no="+Trim(Str(resultSet.GetValue("fid"))),1000)

не находит документов вообще, хотя

Set collection = db.FTSearch("regcard",1000)

находит все которые есть :)

Как правильно написать это выражение

Поле card_no числовое и заполненно данными.
 
F

fvoice

Call collection.FTSearch("FIELD card_no="+Trim(Str(resultSet.GetValue("fid"))),1000)
Если я не ошибаюсь вы вставляете вместо ключевых слов для полнотекстового поиска формулу?
 
S

SkyRanger

Да, у меня должно получится

FIELD card_no=0

я пробовал

[card_no]=0

Что самое интересное в поиске по вьюхе это не работает :)((
 
Y

Yakov

Насколько я понимаю, FTSearch - это полнотекстовый поиск, и числовые данные им не найти. По крайней мере, у меня однажды не нашлись, поэтому я стал хранить числа в виде текста.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Для: SkyRanger
Используй метод Search, а не FTSearch.
 
M

morpheus

<!--QuoteBegin-Medevic+3:08:2007, 08:11 -->
<span class="vbquote">(Medevic @ 3:08:2007, 08:11 )</span><!--QuoteEBegin-->Используй метод Search, а не FTSearch.
[snapback]74286" rel="nofollow" target="_blank[/snapback]​
[/quote]
в самую точку. 100%
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!