Поиск с пом Ftserach

Тема в разделе "Lotus - Программирование", создана пользователем SkyRanger, 3 авг 2007.

  1. SkyRanger

    SkyRanger Active Member

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

    Вот мой код:

    Код (Text):
        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 числовое и заполненно данными.
     
  2. fvoice

    fvoice Гость

    Если я не ошибаюсь вы вставляете вместо ключевых слов для полнотекстового поиска формулу?
     
  3. SkyRanger

    SkyRanger Active Member

    Регистрация:
    17 мар 2007
    Сообщения:
    44
    Симпатии:
    0
    Да, у меня должно получится

    FIELD card_no=0

    я пробовал

    [card_no]=0

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

    Yakov Гость

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: SkyRanger
    Используй метод Search, а не FTSearch.
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--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%
     
  7. SkyRanger

    SkyRanger Active Member

    Регистрация:
    17 мар 2007
    Сообщения:
    44
    Симпатии:
    0
    Ага, сапасибо, заработало!
     
Загрузка...

Поделиться этой страницей