Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос с базой данных / 7 сообщений из 7, страница 1 из 1
19.03.2007, 10:44
    #34399456
erzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
Товарищи, помогите. Есть база (к примеру база1). Там есть таблица (к примеру таблица1). В таблице записи клиентов. Так вот, хотелось по пустить поиск по таблице, и выбрать всех людей, фамилия которых кончается на 'А'. С латинскими буквами все работает, но только по поиску первой буквы! Последняя не хочет определяться. А надо имеено РУССКИЙ поиск. Поможите...

SCAN FOR LIKE('А*', cfam) - не помогает. Может я делаю что-нить не так?
...
Рейтинг: 0 / 0
19.03.2007, 10:57
    #34399491
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
Или SET COMPATIBLE ON перед сканированием, или LIKE("*А",ALLTRIM(FieldName))
...
Рейтинг: 0 / 0
19.03.2007, 13:40
    #34400152
erzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
Ничего не понимаю.

USE master
LIST FIELDS cfam NEXT 1999
SORT TO temp ON cfam FIELDS LIKE 'W*'
USE temp
STORE 0 TO mcount
LOCATE FOR (temp.cfam = '*')
DO WHILE FOUND()
mcount = mcount + 1
? cfam
CONTINUE
ENDDO

Вот сдесь, как я понимаю, идет поиск записей на W и скидывается во временную таблицу temp. Но потом когда я пытаюсь ее подключить (USE temp) Фокс говорит 'temp.dbf is not a table' и все! Не могу понять, почему. Не хочет искать хоть лопни.
...
Рейтинг: 0 / 0
19.03.2007, 15:00
    #34400453
vkluch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
SORT TO temp ON cfam FIELDS LIKE 'W*'
Запись в Temp всех записей из таблицы Master с выборкой полей начинющихся с W
Если таких полей в таблице Master нет то и таблицы Temp нет
...
Рейтинг: 0 / 0
19.03.2007, 15:18
    #34400526
vkluch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
USE master
index on upper(cfam) to master && если длина cfam<=99
copy to temp FOR upper(right(alltrim(cfam),1)) $ 'AА'
USE temp
STORE 0 TO mcount
SCAN
mcount = mcount + 1
? cfam
ENDSCAN
browse
...
Рейтинг: 0 / 0
19.03.2007, 15:31
    #34400581
erzzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
В общем написал функцию такую:

mcount = 0
CLOSE DATABASES
OPEN DATABASE sport
USE master
LIST FIELDS cfam NEXT 1999
SCAN FOR LIKE('*а', cfam)
? cfam, ctelefon
mcount = mcount + 1
ENDSCAN
? ''
? 'ВСЕГО ЗАПИСЕЙ НАЙДЕНО: ', mcount
CLOSE DATABASES

Работает.

Спасибо всем кто откликнулся!
...
Рейтинг: 0 / 0
19.03.2007, 15:49
    #34400631
alex11100
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос с базой данных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create cursor tt (a c( 10 ))

insert into tt values ('12a')
insert into tt values ('23a')
insert into tt values ('23b')
insert into tt values ('23c')
insert into tt values ('33c')

select count(*) ;
	from tt ;
	where right(rtrim(a), 1 )='a'
	
select count(*) ;
	from tt ;
	where right(rtrim(a), 1 )='b'
	
select count(*) ;
	from tt ;
	where right(rtrim(a), 1 )='c'
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос с базой данных / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]