Подскажите начинающему но дающему надежды. При работе с текстовой базой данных. В методе ksCondition можно указывать фыльтр отбара записей в виде строчки, например: ’d>14 && l<30’
А если на перед неизвесно какое условие, то есть пользователь указывая ряд параметров как бы формирует его как тогда быть???
Пробовал через строковую переменную не вышло
iDataBase.ksDoStatement( dbRef, resRecord, ’1 2 3 4 5 6 7 8 9 ’ );
iDataBase.ksCondition(dbref,resRecord,???);
P.s.:за ошибки не ругайте
Смотрим справку по ksDataBaseObject::ksCondition
Примечание:
....Поскипано....
Следует отметить, что при работе с текстовыми базами данных не обрабатывается вложенность условий (например, "where d > 10 and d < 14").
Обратите внимание на последнюю строку.
Называется сам дурак..не внимательно прочитал условие...
Развиваем тему. У меня такая проблема.
1.loa содержит:
/*
idName h b
*/
5 50 32
6.5 65 36
дальше в классе:
'создаем базу
Dim Data As Kompas6API5.DataBaseObject
Base.db = Data.ksCreateDB("TXT_DB")
If ConnectDB_(Base.db, "1.loa") Then
Base.r = Data.ksRelation(Base.db)
Data.ksRChar "idName", 10, 0 '0- idName
Data.ksRFloat ("h") '1- h
Data.ksRFloat ("b") '2- b
Data.ksEndRelation
If Data.ksDoStatement(Base.db, Base.r, "") Then ' TXT_ALL
OpenDataBase = True
End If
'считываем данные
If Data.ksCondition(Base.db, Base.r, "idName=5") = 1 Then
i = Data.ksReadRecord(Base.db, Base.r, paramTmp)
If i > 0 Then
Dim item As Kompas6API5.LtVariant
Dim arr As Kompas6API5.DynamicArray
Set item = iKompasObject.GetParamStruct(ko_LtVariant)
Set arr = paramTmp.GetUserArray()
If (Not item Is Nothing) And (Not arr Is Nothing) And arr.ksGetArrayCount() >= 3 Then
item.init
arr.ksGetArrayItem 0, item '0- idName
tmp.idName = item.strVal
arr.ksGetArrayItem 1, item '1- h
tmp.h = item.floatVal
arr.ksGetArrayItem 2, item '2- b
tmp.b = item.floatVal
End If
End If
Так вот в первом случае при idName=5 параметры считываются правельно. При втором случае idName=6.5 остальные данные считываются как при idName=5. Вчем ошибка - не пойму. Ответьте пожалуйста.
Тема закрыта. Сам разабрался.