Форум
Написать нам
Страница 8 из 10«12678910»
Модератор форума: Peter 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Вопрос по Базе данных
Вопрос по Базе данных
DEMBELДата: Суббота, 27 Февраль 2010, 22:13 | Сообщение # 211
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
мда, плагины для баз sqlite не на высоте... вопрос - в базе может содержаться битмап. Можно ли его оттуда вытащить, используя плагин hpwSqLite? Допустим, делаем запрос к базе, ответ же получаем в переменную в виде данных с разделителями. Какой вид данных при этом имеет битмап и можно ли как-то его вытащить и показать отдельно как картинку.
 
PeterДата: Воскресенье, 28 Февраль 2010, 12:17 | Сообщение # 212
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
А почему не воспользоваться плагином NeoBookDBPro?

Я не спец по базам, но насколько сумел понять, плагин hpwSqLite не в состоянии работать с картинками.


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Воскресенье, 28 Февраль 2010, 13:35 | Сообщение # 213
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Peter)
NeoBookDBPro?

не знаю, я с ним не работал... а он не слишком жирно весит? и не хочу проблем с регистрацией. вообще хочу что нибудь легкое и бесплатное, я же не шаттл собрался запускать... да и принцип работы hpwSqLite меня устраивает, табличный вывод данных ненужен, только запросы и ответ в переменную, дальше я сам. Ладно, я вроде надыбал прогу для создания баз sqlite 2.х, попробую их с этим плагом...
 
PeterДата: Воскресенье, 28 Февраль 2010, 14:15 | Сообщение # 214
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
я с ним не работал...

Так вот и есть повод поработать. :)
Quote (DEMBEL)
а он не слишком жирно весит?

530 кб (Runtime версия) для такого продвинутого плага разьве много?
DEMBEL, тебе "шашечки" или "ехать"?
Никак не думал, что и ты можешь впасть в маразм маленького файла!
:D
Quote (DEMBEL)
и не хочу проблем с регистрацией

В самой первой версии плагина их нет!
Quote (DEMBEL)
легкое и бесплатное

Легким и бесплатным (особливо - ЛЕГКИМ) бывает только глючное!

Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
DEMBELДата: Воскресенье, 28 Февраль 2010, 15:57 | Сообщение # 215
Наш дизайнер
Группа: Модераторы
Сообщений: 2314
Репутация: 25
Награды: 12
Статус: Offline
Quote (Peter)
Никак не думал, что и ты можешь впасть в маразм маленького файла!

ну у меня и так уже есть в проекте 3 плагина, будет четвертый... Причем из каждого использую только 1-2 функции а весить они будут более 2Мб, проста абыдно да...
 
Alex3AДата: Воскресенье, 28 Февраль 2010, 16:10 | Сообщение # 216
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2957
Репутация: 31
Награды: 10
Статус: Offline
Quote (Peter)
Я не спец по базам, но насколько сумел понять, плагин hpwSqLite не в состоянии работать с картинками.

В принципе, это не важно, и я вообще считаю плохим тоном держать в базе данных
картинки и прочие бинарные данные, для их использования вполне предостаточно
ссылок на файлы их содержащие. И вот почему- содержание бин данных в базах увеличивает
их размер, и не только в зависимости от способа их хранения в базе, но и в связи с их
в ней размещением, добавляется ряд данных обслуживающих такое хранение. Скорость доступа к таким данным, будет заведомо ниже чем скорость файловых операций,
данные хочь не хочь а надо считать из файла, плюс время нужное на их обработку и плюс
скоростьих передачи по каналу связи базы данных с приложением. Альтернативный вариант,
получение из базы ссылки и зарузка указанных данних из фала самим приложением выглядит
значительно проще быстрее и привлекательней. Я где то понимаю ваши мысли, возможно вы
сами этого не сознаете, привлекательность хранения в базе таких данных асоциируется у вас с кажущейся возможностью сокрытия данных, но такая возможность не есть лучшим спосбом это сделать. Сокрыть данные можно и применяя альтернативный вариант -загрузку из файла самим приложением, и вариантов тут немеряно.
 
PeterДата: Воскресенье, 28 Февраль 2010, 18:10 | Сообщение # 217
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 2437
Репутация: 34
Награды: 14
Статус: Offline
Quote (DEMBEL)
а весить они будут более 2Мб

Конечно же не очень разумным выглядит для использование пары функций добавлять по 500 кб.
Но если иначе никак, то придеться мириться с этим.
Плагины можно и не пихать внутрь экзешника, а сделать их внешними.

В конце-концов, уже давно канули в лету программы размером меньше мегабайта.
Я уже давно и не качаю подобное, т.к. хорошо убедился в том, что в программу размером меньше мегабайта можно запихнуть всего две вещи: либо убогий интерфейс (это в лучшем случае), либо - убогую функциональность (это - чаще).
Программа должна быть удобной и надежной!
Все остальное - второстепенно!


Чем дорожу... Чем рискую на свете я....
Мигом одним! Только мигом одним!...

WHITESNAKE St.Petersburg - 11.12.2008
 
YURIYДата: Воскресенье, 28 Февраль 2010, 18:13 | Сообщение # 218
Злостный админ
Группа: Администраторы
Сообщений: 2486
Репутация: 54
Награды: 19
Статус: Offline



Вечная память Андрею Сергееву!
 
ArtexДата: Среда, 07 Апрель 2010, 10:43 | Сообщение # 219
Новый участник
Группа: Пользователи
Сообщений: 29
Репутация: 0
Награды: 0
Статус: Offline
День доврый.
Создал БД из нескольких полей, точнее телефонную базу сотрудников организации. Каждому телефонному номеру соответствует одна запись, т.е. основным полем является телефонный номер. При поиске в базе по неосновным полям выдаётся только первая запись соответствующая данному полю, при этом у каждого сотрудника минимум 2 номера.
Как сделать, чтобы при поиске по неосновным полям выводилась одна форма со списком номеров, или отображались только те записи, которые соответствуют данному полю.
 
СергейДата: Среда, 07 Апрель 2010, 10:59 | Сообщение # 220
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote (Artex)
Как сделать
а что сделали вы?!
Там есть команда, не помню как наз-ся но типа следующая запись и команда отобразить все записи по запросу

Добавлено (07 Апрель 2010, 10:59)
---------------------------------------------
но лучше пример, так вам быстрее ответят по сабжу. Дело в том, что наши телепаты в отпуске и нам приходится своими силами додумыватся, что же имел ввиду автор... Но как водится мы неможем угадывать, какой же все таки использует автор плагин или какую команду он вводит, как выводит инфу поиска и т.д.


 
ArtexДата: Среда, 07 Апрель 2010, 12:05 | Сообщение # 221
Новый участник
Группа: Пользователи
Сообщений: 29
Репутация: 0
Награды: 0
Статус: Offline
Quote (Сергей)
а что сделали вы?!

Quote (Сергей)
какую команду он вводит

использую команду

Code
InputBox "Find" "Name:" "[SearchStr]"
If "[SearchStr]" ">" ""
dbfFind "sample.dbf" "NAME" "[SearchStr]"
EnableMenuItem "MenuItem4"
Else
DisableMenuItem "MenuItem4"
EndIf

Quote (Сергей)
какой же все таки использует автор плагин

использую плагин NeoBookDB 2.3d
 
mishemДата: Среда, 07 Апрель 2010, 12:13 | Сообщение # 222
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Artex, насколько я догадываюсь, Вы используете плагин NeoBookDB. У него есть проблема с поиском. Ищет любое слово в котором находится буква которую Вы ввели, не зависимо от того где она находится (в начале, в середине или в конце. При вводе следующей буквы, будет искать похожие. В плагине NeoBookDBPro с поиском организовано лучше, но он платный. Я Вам сейчас выложу код, который ищет именно то что введено и именно только в начале. Подгонять его как пример, у меня сейчас времени нет, но попробуйте разобраться. Если не разбиретесь, вечером постараюсь выложить с объяснениями.
Code
StrIns "" "" "" "[TextEntry17]"
Return
Else
HideObject "ListBox1" "None" "0"
.Если [TextEntry17] равен пробелу
If "[TextEntry17]" "=" " "
StrIns "" "" "" "[TextEntry17]"
Return
EndIf
.Если [TextEntry17] равен пустому
If "[TextEntry17]" "=" ""
dbfShowAll "[PubDir]sample.dbf"
dbfShowAll "[PubDir]Reestr.dbf"
HideObject "ListBox1" "None" "0"
Return
EndIf
.Отменить поисковый запрос
If "[dbfQueryResult]" "=" "0"
dbfShowAll "[PubDir]sample.dbf"
dbfShowAll "[PubDir]Reestr.dbf"
EndIf
.Поиск в базе Reestr и sample введенных символов
dbfShowErrors "False"
dbfQuery "[PubDir]sample.dbf" "NAZVANIE==[#34][TextEntry17][#34]"
dbfShowErrors "True"
.Если точное слово найдено
If "[TextEntry17]" "=" "[sample.NAZVANIE]"
CustomWindow "                    РЕЖИМ   РЕДАКТИРОВАНИЯ" "33" "483" "QueryDialog" "DialogBox+NoCloseBtn"
dbfShowAll "[PubDir]Reestr.dbf"
HideObject "ListBox1" "None" "0"
Return
Else
dbfShowAll "[PubDir]sample.dbf"
ClearVariables "[ListBox1]"
dbfShowErrors "False"
dbfQuery "[PubDir]Reestr.dbf" "NAZVANIE=[#34][TextEntry17][#34]"
dbfShowErrors "True"
dbfFieldToVar "[PubDir]Reestr.dbf" "NAZVANIE" "[Poisk]" "NoBlanks+NoDuplicates"
StrParse "[Poisk]" "[#13]" "[T]" "[N]"
StrLen "[TextEntry17]" "[DlinaStroki]"
While "[N]" ">" "0"
SubStr "[T[N]]" "1" "[DlinaStroki]" "[DlinaStroki2]"
If "[TextEntry17]" "=" "[DlinaStroki2]"
ListBoxAddItem "ListBox1" "1" "[T[N]]"
EndIf
Math "[N]-1" "decimal " "[N]"
EndWhile
ListBoxSize "ListBox1" "[Size]"
If "[Size]" "<>" "0"
Math "[Size]*20-([Size]-1)*4" "-1" "[n]"
If "[Size]" ">" "10"
SizeObject "ListBox1" "290" "124"
Else
SizeObject "ListBox1" "290" "[n]"
EndIf
ShowObject "ListBox1" "None" "0"
DeleteArray "[T]" "All"
Else
HideObject "ListBox1" "None" "0"
DeleteArray "[T]" "All"
EndIf
EndIf
EndIf
If "[TextEntry17]" "=" ""
HideObject "ListBox1" "None" "0"
EndIf

"[PubDir]sample.dbf" основная база
"[PubDir]Reestr.dbf" по которой происходит поиск, дубль основной базы. Вам она в принципе наверно не нужна будет. Сейчас сразу и не вспомню для чего она создана. Вообще там многое можно выкинуть. Если не разбиретесь, ждите вечера. Сейчас некогда.

Я люблю думать что умею рисовать
 
СергейДата: Среда, 07 Апрель 2010, 12:16 | Сообщение # 223
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline

Quote (Artex)
dbfFind
а в плаге есть команды отоброзить следующий поиск?
Может mishem подскажет, он с работой БД уже профи стал
P.S.
код лучше оформлять тегами - code

 
ArtexДата: Среда, 07 Апрель 2010, 12:18 | Сообщение # 224
Новый участник
Группа: Пользователи
Сообщений: 29
Репутация: 0
Награды: 0
Статус: Offline
Quote (mishem)
Я Вам сейчас выложу код

Спасибо, попытаюсь разобраться
 
СергейДата: Среда, 07 Апрель 2010, 12:20 | Сообщение # 225
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline

Добавлено (07 Апрель 2010, 12:20)
---------------------------------------------

Quote (mishem)
У него есть проблема с поиском. Ищет любое слово в котором находится буква которую Вы ввели, не зависимо от того где она находится (в начале, в середине или в конце).
досадно, зато бесплатно

 
mishemДата: Среда, 07 Апрель 2010, 12:29 | Сообщение # 226
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (Сергей)
досадно, зато бесплатно

Я эту досаду подправил :D

Добавлено (07 Апрель 2010, 12:25)
---------------------------------------------
А вообще, на будущее, лучше использовать NeoBookDBPro, и при установке программы вносить в реестр ключ. ;) -X

Добавлено (07 Апрель 2010, 12:27)
---------------------------------------------

Quote (Сергей)
а в плаге есть команды отоброзить следующий поиск?

Есть, но она так же выводит запись по тому же принципу.

Добавлено (07 Апрель 2010, 12:29)
---------------------------------------------
Да, в начале что б при многократном нажатии на клавишу не происходил поиск, нужно сделать такую запись

Code
Math "[Vvod]+1" "0" "[Vvod]"
If "[Vvod]" "=" "1"
GoSub "Vvod_Texta"
Math "[Vvod]-1" "0" "[Vvod]"
Else
HideObject "ListBox1" "None" "0"
Math "[Vvod]-1" "0" "[Vvod]"
EndIf

Где GoSub "Vvod_Texta" код который был дан ранее.


Я люблю думать что умею рисовать
 
СергейДата: Среда, 07 Апрель 2010, 12:35 | Сообщение # 227
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote (mishem)
Я Вам сейчас выложу код, который ищет именно то что введено и именно только в начале.
Artex, не спешите его сразу проверять, т.к. будут ошибки, объекты и переменые не совпадают. Сначало одаптируйте под свой пример

Добавлено (07 Апрель 2010, 12:33)
---------------------------------------------
чет я не могу вкурить?!

Quote
Math "[Vvod]+1" "0" "[Vvod]"
If "[Vvod]" "=" "1"
GoSub "Vvod_Texta"
Math "[Vvod]-1" "0" "[Vvod]"
Else
HideObject "ListBox1" "None" "0"
Math "[Vvod]-1" "0" "[Vvod]"
EndIf
в обоих случаях идет убавление, зачем тогда условие

Добавлено (07 Апрель 2010, 12:35)
---------------------------------------------
ладно, всеравно без самой команды плагина и принцыпа работы, я не пойму о чем речь




Сообщение отредактировал Сергей - Среда, 07 Апрель 2010, 12:34
 
mishemДата: Среда, 07 Апрель 2010, 18:44 | Сообщение # 228
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (Сергей)
HideObject "ListBox1" "None" "0"

Если ListBox1 открыт, скрыть его. По моему так :D . Вечером, все вечером. Сейчас заехал перекусить, и между делом .... :D

Добавлено (07 Апрель 2010, 13:00)
---------------------------------------------

Quote (Сергей)
в обоих случаях идет убавление, зачем тогда условие

Если больше единицы, то поиск не будет проходить, а будет отниматься по единице. Это для того, что бы когда нажимаешь на клавишу и держишь получается примерно так ттттттттт, в этот момент при каждом вводе буквы "т" считывается только первая команда. (то же самое происходит когда удаляешь текст клавишей Backspace)
Math "[Vvod]+1" "0" "[Vvod]" .
И только когда клавиша отпускается начинается цикл, повторение продолжения команд столько раз, сколько было введено букв. Вот для того что бы поиск не повторялся после каждой буквы, идет вычетание пока не получится единица.
Для этого же и весь код поиска убран в GoSub "Vvod_Texta", что б сократить время чтения кода.

Добавлено (07 Апрель 2010, 18:44)
---------------------------------------------
Значит так, поехали сначала. :D
Проверяем, открыта ли база вообще?
:IsDB_Open

Code
dbfShowErrors "False"
dbfGetFieldNames "[PubDir]sample.dbf" "[imina_polei]"
If "[dbfError]" "<>" ""
        PlaySoundFile "[WindowsDir]Media\Windows XP - пуск.wav" "Normal"
        SetVar "[DB_Open]" "False"
       Else
        PlaySoundFile "[WindowsDir]Media\Windows XP - пуск.wav" "Normal"
        SetVar "[DB_Open]"  "True"
EndIf
dbfShowErrors "True"
Return

Выношу на обозрение, так как дальше в коде будет присутствовать команда GoSub "IsDB_Open"
Далее, проверяем сколько раз было нажато на клавишу. Код пишется в поле ввода
Code
Math "[Vvod]+1" "0" "[Vvod]"
If "[Vvod]" "=" "1"
GoSub "Vvod_Texta"
Math "[Vvod]-1" "0" "[Vvod]"
Else
HideObject "ListBox1" "None" "0"
Math "[Vvod]-1" "0" "[Vvod]"
EndIf
Пояснение почему именно так, выше. :)
Ну и поехали , самое основное.
:Vvod_Texta

Code

.Сдесь понятно, проверка, открыта база или нет.
GoSub "IsDB_Open"
.Если не открыта, удалить все символы которые были введены
If "[DB_Open]" "=" "False"
StrIns "" "" "" "[TextEntry17]"
Return
Else
HideObject "ListBox1" "None" "0"
.Если [TextEntry17] равен пробелу, удалить пробел
If "[TextEntry17]" "=" " "
StrIns "" "" "" "[TextEntry17]"
Return
EndIf
.Если [TextEntry17] равен пустому, когда клавишей Backspace удалили все символы
If "[TextEntry17]" "=" ""
.Сдесь понятно, анулируем поиск что бы все записи были показаны, иначе будет искать в тех же записях которые были найдены, а не во всей базе.
dbfShowAll "[PubDir]sample.dbf"
dbfShowAll "[PubDir]Reestr.dbf"
HideObject "ListBox1" "None" "0"
Return
EndIf
.Отменить поисковый запрос
If "[dbfQueryResult]" "=" "0"
dbfShowAll "[PubDir]sample.dbf"
dbfShowAll "[PubDir]Reestr.dbf"
EndIf
.Поиск в базе Reestr и sample введенных символов
dbfShowErrors "False"
dbfQuery "[PubDir]sample.dbf" "NAZVANIE==[#34][TextEntry17][#34]"
dbfShowErrors "True"
.Если точное слово найдено, у меня открывается редактор
If "[TextEntry17]" "=" "[sample.NAZVANIE]"
CustomWindow " РЕЖИМ РЕДАКТИРОВАНИЯ" "33" "483" "QueryDialog" "DialogBox+NoCloseBtn"
.в Reestr.dbf у меня находяться данные которые могут не быть в той базе которая открыта на данный момент, и что бы не вводить в ручную то что мне может понадобиться я внес в отдельную базу примерно все данные которые мне нужны, своеобразный каталог. По этому поиск происходит сразу по двум базам.
dbfShowAll "[PubDir]Reestr.dbf"
HideObject "ListBox1" "None" "0"
Return
Else
dbfShowAll "[PubDir]sample.dbf"
Очистить листбокс, иначе новые записи будут добавляться, а не заменяться.
ClearVariables "[ListBox1]"
dbfShowErrors "False"
dbfQuery "[PubDir]Reestr.dbf" "NAZVANIE=[#34][TextEntry17][#34]"
dbfShowErrors "True"
.Сдесь мы делим на массив все что было найдено, и начинаем искать именно по буквам которые нам нужны.
dbfFieldToVar "[PubDir]Reestr.dbf" "NAZVANIE" "[Poisk]" "NoBlanks+NoDuplicates"
StrParse "[Poisk]" "[#13]" "[T]" "[N]"
StrLen "[TextEntry17]" "[DlinaStroki]"
While "[N]" ">" "0"
SubStr "[T[N]]" "1" "[DlinaStroki]" "[DlinaStroki2]"
If "[TextEntry17]" "=" "[DlinaStroki2]"
ListBoxAddItem "ListBox1" "1" "[T[N]]"
EndIf
Math "[N]-1" "decimal " "[N]"
EndWhile
ListBoxSize "ListBox1" "[Size]"
If "[Size]" "<>" "0"
Math "[Size]*20-([Size]-1)*4" "-1" "[n]"
If "[Size]" ">" "10"
SizeObject "ListBox1" "290" "124"
Else
SizeObject "ListBox1" "290" "[n]"
EndIf
ShowObject "ListBox1" "None" "0"
DeleteArray "[T]" "All"
Else
HideObject "ListBox1" "None" "0"
DeleteArray "[T]" "All"
EndIf
EndIf
EndIf
If "[TextEntry17]" "=" ""
HideObject "ListBox1" "None" "0"
EndIf
Return

Ну в остальном, думаю и так понятно. :D
"[TextEntry17]" поле в которое вводим строки
"ListBox1" отображается то что было найдено
NAZVANIE поле по которому происходит поиск
"[PubDir]Reestr.dbf" еще одна база с анолагичными данными.
Это то, что нужно добавить/заменить у себя в проекте, что б заработало. :D


Я люблю думать что умею рисовать

Сообщение отредактировал mishem - Среда, 07 Апрель 2010, 18:53
 
СергейДата: Среда, 07 Апрель 2010, 19:06 | Сообщение # 229
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote
StrIns "" "" "" "[TextEntry17]" >> SetVar "[TextEntry17]" "" ??

Quote (mishem)
еще одна база с анолагичными данными.
а еще одна для чего?!



Сообщение отредактировал Сергей - Среда, 07 Апрель 2010, 19:09
 
mishemДата: Среда, 07 Апрель 2010, 19:16 | Сообщение # 230
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Сергей, Последний код, с объяснениями, там на эти вопросы есть ответ. ;)

Я люблю думать что умею рисовать
 
СергейДата: Среда, 07 Апрель 2010, 19:24 | Сообщение # 231
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline

понятно

 
mishemДата: Среда, 07 Апрель 2010, 19:27 | Сообщение # 232
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Сначала поиск происходит в основной базе, ищет полное совпадение. Если такого нет, ищет в другой похожие слова. У меня сделано еще когда в листбоксе выбираешь найденное слово, происходит опять поиск в основной базе этого слова, если есть, открывается редактор, если нет, добавляется в базу. Сделал так, что б не плодить клонов с одинаковыми названиями. В моем случае это не надо. :)

Добавлено (07 Апрель 2010, 19:27)
---------------------------------------------

:D

Я люблю думать что умею рисовать
 
ArtexДата: Четверг, 08 Апрель 2010, 14:19 | Сообщение # 233
Новый участник
Группа: Пользователи
Сообщений: 29
Репутация: 0
Награды: 0
Статус: Offline
Quote (mishem)
Я Вам сейчас выложу код

вчера попытался разобраться в приведенном вами коде, но не смог вникнуть в ряд деталей.
Вроде то, что нужно мне, осуществляет команда dbfQuery, но при проверке кода она выдаёт ошибку синтаксиса. Мне, как я уже говорил, нужно создание поисковой формы со списком полей и выводом только результатов соответствующим критериям поиска, или вывод этих результатов при помощи команды dbfFind.
 
mishemДата: Четверг, 08 Апрель 2010, 14:54 | Сообщение # 234
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Artex,
Quote (Artex)
осуществляет команда dbfQuery, но при проверке кода она выдаёт ошибку синтаксиса

Покажите свой пример, ошибка синтаксиса, это не правильно задали поисковый запрос.

Добавлено (08 Апрель 2010, 14:54)
---------------------------------------------
Вы этот пост читали?


Я люблю думать что умею рисовать
 
ArtexДата: Четверг, 08 Апрель 2010, 15:01 | Сообщение # 235
Новый участник
Группа: Пользователи
Сообщений: 29
Репутация: 0
Награды: 0
Статус: Offline
Quote (mishem)
Покажите свой пример

Code
dbfQuery "sample.dbf" ""
If "[dbfQueryResult]" ">" "0"
EndIf
 
mishemДата: Четверг, 08 Апрель 2010, 15:05 | Сообщение # 236
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Так вы ж ни чего не указываете для поиска. Почитайте хелп к плагину.

Я люблю думать что умею рисовать
 
СергейДата: Четверг, 08 Апрель 2010, 15:08 | Сообщение # 237
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote (Artex)
dbfQuery "sample.dbf" ""

ну и что это?! вы показали строчку, где все верно, но почему критерий указан пустой? не в этом ли дело(?)
Quote (mishem)
dbfQuery "[PubDir]Reestr.dbf" "NAZVANIE=[#34][TextEntry17][#34]"

Если не в этом(т.к. я этот плаг не юзал и незнаю специфику), то придется показать связный с этим событием остальной код...

Добавлено (08 Апрель 2010, 15:08)
---------------------------------------------



 
mishemДата: Четверг, 08 Апрель 2010, 15:09 | Сообщение # 238
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Должно поримерно выглядеть так
Code
dbfQuery "[PubDir]sample.dbf" "ИМЯ ПОЛЯ ==[#34][Текст][#34]"

[#34] ставится если в тексте есть пробел


Я люблю думать что умею рисовать
 
СергейДата: Четверг, 08 Апрель 2010, 17:07 | Сообщение # 239
Необукер
Группа: Проверенные
Сообщений: 2236
Репутация: 23
Награды: 12
Статус: Offline
Quote (mishem)
dbfQuery "[PubDir]sample.dbf" "ИМЯ ПОЛЯ ==[#34][Текст][#34]"
опечатка?

 
mishemДата: Четверг, 08 Апрель 2010, 18:00 | Сообщение # 240
Ветеран форума
Группа: Проверенные
Сообщений: 751
Репутация: 6
Награды: 2
Статус: Offline
Quote (Сергей)
опечатка?

Нет. Так искомая строка полностью совпадает с данными в исследуемом поле.
опечатка == опечатка, но не равно опечатка == опечат
опечатка = опечатка, и о = опечатка, и опечат = опечатка
= Хотя бы часть искомой строки совпадает с данными в исследуемом поле. То есть то о чем говорил. Если одна буква к примеру О, буду найдены сова Объект, прОхОд, салО и т.д

Добавлено (08 Апрель 2010, 18:00)
---------------------------------------------
Да, и еще. Если ничего найдено не будет, то выскакивает сообщение. Для того что б оно не выскакивало, я перед началом поиска ставлю команду
dbfShowErrors "False", а в конце dbfShowErrors "True" ;)


Я люблю думать что умею рисовать

Сообщение отредактировал mishem - Четверг, 08 Апрель 2010, 17:46
 
Форум MMB » Всё о программе Neo Book » Вопросы и ответы по NB » Вопрос по Базе данных
Страница 8 из 10«12678910»
Поиск: