Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.30;
Скачать: CL | DM;

Вниз

Отображение в ListView   Найти похожие ветки 

 
Ivolg ©   (2007-09-04 11:15) [0]

Привет... У меня ест база данных DBE, как можно отобразить содержимое в ListView ?


 
Сергей М. ©   (2007-09-04 11:17) [1]


> база данных DBE


Что за зверь ?


> как можно отобразить содержимое в ListView ?


Чем DBListView не угодил ? Там уже вся черновая работа на эту тему сделана..


 
Ivolg ©   (2007-09-04 11:24) [2]

Сергей М. ©   (04.09.07 11:17) [1]

Очипятка ) BDE. Я пробовал его, но что то не нашел как именно это сделать ))


 
clickmaker ©   (2007-09-04 11:27) [3]


> Очипятка ) BDE

BDE это по-твоему "база данных"?


 
max_   (2007-09-04 11:28) [4]

блин, а я руками в listview переносил когда то...:(


 
Ivolg ©   (2007-09-04 11:30) [5]

Точнее он вообще не установился, т.к он требует Interbase, а ее не устанавливал. Название компонента IBXDBTreeWiev. Можешь подсказать откуда скачать можно DBListView ?


 
Jeer ©   (2007-09-04 11:34) [6]

Закладка "Data Control"


 
Ivolg ©   (2007-09-04 11:36) [7]

На тори поискал, нашел старую версию еще под Д3, она почему-то не ставится (


 
Ivolg ©   (2007-09-04 11:42) [8]

Все, всем спасибо ! Я нашел компонент... Если кому то нужно, то вот ссылка http://whitewind.sibnet.info/files/DBListView.rar


 
Ivolg ©   (2007-09-04 13:17) [9]

Я Использую Table + DataSource, база написана на Visual FoxPro. Мне необходимо сделать фильтр по именам пользователей. Как это можно организовать ?


 
clickmaker ©   (2007-09-04 13:22) [10]

Table.Filter
Table.Filtered


 
Ivolg ©   (2007-09-04 14:31) [11]

А можно как можно сделать поиск ? Может есть какой-нибудь быстрый алгоритм ? Я сделал вот так:


      for I:=0 to 258575 do
        begin
      Table1.Next;
       if Copy(Table1.FieldByName("Name").Text, 1, Length(Edit1.Text))=Edit1.Text then
         begin
       It:=Lv.Items.Add;
       It.Caption:=Table1.FieldByName("Name").Text;
       end
         else
           Break;

       end;


Т.е Когда в Edit вводишь букву "А", то ищет все что а "А", затем добавляет результат в ListView. Но этот алгоритм полный бред, работает медленно и зависает, в базе как никак 258575 таблиц )


 
Сергей М. ©   (2007-09-04 14:36) [12]


> в базе как никак 258575 таблиц


Непонятно, каким боком упомянутый тобой образом цикл for I:=0 to 258575 do (пусть даже работающий медленно) относится к поиску во всех этих таблицах ?


 
Ivolg ©   (2007-09-04 14:56) [13]

Ну в базе всего 258575, и я на каждую таблицу перехожу с помощью Table.Next; Может существуют другие методы поиска ?


 
Сергей М. ©   (2007-09-04 14:59) [14]


> в базе всего 258575, и я на каждую таблицу перехожу с помощью
> Table.Next


Table.Next означает "Перейти на следующую запись в данной конкретной таблице" !!!


 
Ivolg ©   (2007-09-04 15:02) [15]

Сергей М. ©   (04.09.07 14:59) [14]

Неккоректно выразился (


 
Сергей М. ©   (2007-09-04 15:04) [16]


> Неккоректно выразился


Сомневаюсь. Здесь не некорректностью попахивает, а полным непониманием происходящего при вызове такого-то метода такого-то объекта.


 
Сергей М. ©   (2007-09-04 15:06) [17]


> Ivolg


А зачем тебе именно ListView понадобился ?
DBGrid чем плох ?


 
Ivolg ©   (2007-09-04 15:11) [18]

Ну есть с DBGrid поиск можно реализовать, то почему бы и нет :D DBGrid с XPManifest"ом под стайл ХР не подходит :( Еще думал, что в DBListView"е осталось свойство Items, а там его нет.


 
Сергей М. ©   (2007-09-04 15:35) [19]


> Ну есть с DBGrid поиск можно реализовать, то почему бы и
> нет


[DB]Grid, равно как и [DB]ListView не имеет никакого отношения к поиску инф-ции в НД.


> DBGrid с XPManifest"ом под стайл ХР не подходит


Тебе шашечки или ехать ?)


> думал, что в DBListView"е осталось свойство Items, а там
> его нет


А за каким лешим оно там нужно ?


 
Ivolg ©   (2007-09-04 15:41) [20]

Есть решение по поиску ?


 
Сергей М. ©   (2007-09-04 15:46) [21]

Тебе не поиск нужен, а фильтрация.
Одно из решений уже подсказано в [10]


 
Ivolg ©   (2007-09-04 15:48) [22]

Сергей М. ©   (04.09.07 15:46) [21]

Мжешь по подробнее объяснить как сделать фильтрацию ?


 
Jeer ©   (2007-09-04 15:53) [23]

Открыть справку и прочитать экзамплы:

property Filter: String;

Dataset1.Filter := Edit1.Text;
Dataset1.Filter := "State = " + QuotedStr(Edit1.Text);
Dataset1.Filter := "State <> ""CA"" or State = BLANK";


 
Сергей М. ©   (2007-09-04 15:55) [24]


> Ivolg ©   (04.09.07 15:48) [22]


Фильтрация средствами TTable выполняется оч просто:

1. Св-ву Filter присваивается строковое значение, соответствующее WHERE-выражению (т.е. то что д.б. справа от кл.x.слова WHERE) эквивалентного селективного SQL-предложения/

2. Св-во Filtered устанавливается равным True


 
Ivolg ©   (2007-09-04 16:03) [25]

Что-то плохо понял :(  А Можно просто примерчик ? Например фильтровать русскую букву "А" ?


 
Сергей М. ©   (2007-09-04 16:06) [26]

Table.Filter := "NAME LIKE "А%"";
Table.Filtered := True;


 
clickmaker ©   (2007-09-04 16:11) [27]


> [26] Сергей М. ©   (04.09.07 16:06)

а для BDEDataSet LIKE разве работает? не звездочка ли?


 
Ivolg ©   (2007-09-04 16:16) [28]

У меня вылазиет ошибка Invalid filter expression character "".


 
Сергей М. ©   (2007-09-04 16:20) [29]


> clickmaker ©   (04.09.07 16:11) [27]


Не помню. Мож и звездочка.
Не суть как важно в дан.случае. Поменять недолго, если на "процент" ругань будет.


> Ivolg ©   (04.09.07 16:16) [28]


Замени кавычки апострофами.


 
Ivolg ©   (2007-09-04 16:26) [30]

Сергей М. ©   (04.09.07 16:20) [29]

А что это ?)


 
Ivolg ©   (2007-09-04 16:26) [31]

Сергей М. ©   (04.09.07 16:20) [29]
Замени кавычки апострофами.


А что это ?)


 
Германн ©   (2007-09-04 16:28) [32]


> Ivolg ©   (04.09.07 16:26) [31]
>
> Сергей М. ©   (04.09.07 16:20) [29]
> Замени кавычки апострофами.
>
> А что это ?)
>

Оба на! :)


 
Сергей М. ©   (2007-09-04 16:29) [33]


> что это ?


" - это "кавычка" (двойная).
" - это "апостроф" (иногда называется одинарной кавычкой)

Неужто впервые слышишь ?!)


 
Германн ©   (2007-09-04 16:29) [34]


> Не помню. Мож и звездочка.

В LocalSQL  именно так как в
> Сергей М. ©   (04.09.07 16:06) [26]


 
Ivolg ©   (2007-09-04 16:36) [35]

Сергей М. ©   (04.09.07 16:29) [33]

Впервые )) Я назваю "одинарной кавычкой".

Ошибка Unterminated string constant


 
Сергей М. ©   (2007-09-04 16:40) [36]


> Ошибка Unterminated string constant


О боже !)

"NAME LIKE ""A%""";


 
Германн ©   (2007-09-04 16:46) [37]


> Сергей М. ©   (04.09.07 16:40) [36]
>
> "NAME LIKE ""A%""";

В фильтре не катит. В SQL катит. Пусть заменит TTable на TQuery.


 
Ivolg ©   (2007-09-04 16:49) [38]

Я первый просто раз работаю с БД. Ошибку в студию: Operation not applicable


 
Сергей М. ©   (2007-09-04 16:49) [39]


> Германн ©   (04.09.07 16:46) [37]


Тоже верно.


 
Сергей М. ©   (2007-09-04 16:52) [40]


> первый просто раз работаю с БД


Почитать перед этим хоть какую-либо лит-ру по этой теме мысль не приходила ?


 
Ivolg ©   (2007-09-04 17:05) [41]

Вообще-то просто времени нету ((. Я юзаю компонент Halcyon (аналог TTable), для чтения бд. Потому что стандартный Table не тянет базы под FoxPro (хотя там и написано что тянет, но косяки с файлом индекса .CDX). Пробовал на Halcyon и Table фильтр ставить, ошибки все равно лезут (( Может юзал этот компонент ?


 
clickmaker ©   (2007-09-04 17:19) [42]


> [41] Ivolg ©   (04.09.07 17:05)
> Вообще-то просто времени нету

заглянуть в справку по TTable.Filter?
а на форуме вату катать с
Ivolg ©   (04.09.07 11:15)
по
[41] Ivolg ©   (04.09.07 17:05)

есть?


 
Сергей М. ©   (2007-09-04 17:23) [43]


> косяки с файлом индекса .CDX


Какие конкретно ?


 
Ivolg ©   (2007-09-04 18:46) [44]

Сергей М. ©   (04.09.07 17:23) [43]

Подгружаю его, потом Table ругается и пишет что: Corrupt table/index header.
Ставил свойство TableType:=ttFoxPro; - бесполезно. С Table у меня возникают проблемы с кодировкой. А Halcyon все тянет, да и с кодировкой все впорядке. По сути Halcyon, то же самый Table.


 
Ivolg ©   (2007-09-04 19:38) [45]

С фильтром так и несмог ничего сделать, исползую функцию Locate(); Но все же, хотелось бы сделать фильтр.


 
Loginov Dmitry ©   (2007-09-04 21:29) [46]

> Я Использую Table + DataSource, база написана на Visual
> FoxPro. Мне необходимо сделать фильтр по именам пользователей.
> Как это можно организовать ?


В TTable возможности фильтрации достаточно ограничены. Однако такое:
Filter := "UserName = ""Иван*"""
должно сработать.


> Подгружаю его, потом Table ругается и пишет что: Corrupt
> table/index header.


Попробуй удалить файл *.CDX (будет ли работать - не знаю, поэтому сделай его резервную копию)


> С Table у меня возникают проблемы с кодировкой.


Открой в реестре ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\FOXPRO\INIT
и установи LANGDRIVER=db866ru0 (или другой подходящий драйвер)

Того же эффекта можно достичь через BDE Administrator


 
ASoft   (2007-09-05 07:09) [47]


>Ivolg ©   (04.09.07 16:16) [28]

как сказал

> Германн ©   (04.09.07 16:29) [34]

и насколько я помню, там не *, а вместо кавычек (двойных) попробуй написать
Table.Filter := "NAME LIKE "+ QuotedStr("A%");
так, кажется...


 
Loginov Dmitry ©   (2007-09-05 07:47) [48]

> и насколько я помню...
> так, кажется...


зачем столько помнить? Ведь это проверить всего-лишь 2 минуты, после чего ничего лишнего уже не кажется ))
В TQuery, к слову, такая же ситуация с фильтрацией.


 
ASoft   (2007-09-05 09:51) [49]


> Ведь это проверить всего-лишь 2 минуты

было б на чем :-)


 
clickmaker ©   (2007-09-05 10:15) [50]


> [47] ASoft   (05.09.07 07:09)

LIKE работает для ClientDataSet и в Local SQL
для наследников TBDEDataSet - Name = "A*"
и не должно быть foNoPartialCompare  в FilterOptions


 
ASoft   (2007-09-05 12:09) [51]


> clickmaker ©   (05.09.07 10:15) [50]

дык речь про Local SQL и есть


 
clickmaker ©   (2007-09-05 12:13) [52]


> дык речь про Local SQL

Table.Filter := "NAME LIKE

это Local SQL? :)


 
Ivolg ©   (2007-09-05 15:10) [53]

Loginov Dmitry ©   (04.09.07 21:29) [46]

> Я Использую Table + DataSource, база написана на Visual
> FoxPro. Мне необходимо сделать фильтр по именам пользователей.
> Как это можно организовать ?

В TTable возможности фильтрации достаточно ограничены. Однако такое:
Filter := "UserName = ""Иван*"""
должно сработать.


Такое действительно работает, но когда делаю фильтрацию по букву "А", то фильтр возвращает пустые поля.


 
Сергей М. ©   (2007-09-05 15:14) [54]


> Ivolg ©   (05.09.07 15:10) [53]


Разве на TTable свет клином сошелся ?
Воспользуйся TQuery и не парься.



Страницы: 1 2 вся ветка

Текущий архив: 2007.09.30;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.027 c
15-1188675443
vpbar
2007-09-01 23:37
2007.09.30
Организм не принимает С++


15-1188495796
EFFe
2007-08-30 21:43
2007.09.30
C# Хорошая книга


15-1188343540
Bad_B
2007-08-29 03:25
2007.09.30
Хранилище для информации


1-1184659706
Chaser
2007-07-17 12:08
2007.09.30
Загрузка в "WordApplication1" файл из TMemoryStream


15-1189003609
Ш-К
2007-09-05 18:46
2007.09.30
Как сделать паттерн State не к перечеслению, а к множеству?