Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Вниз

Переименование строк в идексированной таблице   Найти похожие ветки 

 
Shuric   (2003-03-26 21:26) [0]

Подскажите плиз наиболее рациональное решение задачи по переименованию нескольких строк в индексированной таблице.

Ключ по нулевому полю ("Наименование"). Придумал только:

function ChangeMatrizaElement(const OLDNameElement, NewNameElement: string): Wordbool;
var
AStroka: string;
Label 0;
begin
Result := True;
with TableMatriza do
if Active then begin
0: if Locate("Наименование", OLDNameElement, [loPartialKey]) then begin
AStroka := Fields[0].AsString;
if System.Pos(OLDNameElement, AStroka) = 1 then begin
System.Delete(AStroka, 1, length(OLDNameElement));
AStroka := NewNameElement + AStroka;
Edit;
Fields[0].AsString := AStroka;
try
Post;
except
on EDatabaseError do begin
Cancel;
Result := False;
end;
end;
if Result then goto 0;
end;
end;
end
else Result := False;
end;


 
sniknik   (2003-03-26 22:50) [1]

можно запросом

AdoCommand.CommandText:=
"UPDATE TableMatriza SET [Наименование]="""+
NewNameElement+"""+Mid([Наименование], Len("""+OLDNameElement+""")+1) "+
"WHERE CompanyName LIKE """+OLDNameElement++"%""";
AdoCommand.Execute

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

зато решение САМОЕ рациональное!


 
Shuric   (2003-03-26 23:43) [2]

>sniknik ©

Ага, угу.
В некотором плане вы правы, однако данная таблица у меня не оппровайдерна и редактируется только серверной частью (всегда открыта на запись). А клиенты о ней не знают. А если запросами - то енто в каждой процедуре открыть, закрыть с различными SQL. И вооще у меня не ADO ;)


 
Johnmen   (2003-03-27 00:45) [3]

Рекомендую к прочтению :
http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
sniknik   (2003-03-27 08:23) [4]

Shuric (26.03.03 23:43)
> И вооще у меня не ADO ;)
с чем вас и поздравляю.

> однако данная таблица у меня не оппровайдерна и редактируется только серверной частью (всегда открыта на запись).
но серверная часть есть, а SQL не используется, значит техногия файл сервер, нехорошо. SQL (сервера) в основном для того и придумали чтобы уйти от этого непрогрессивного и неэффективного метода (для серверных баз неэффективного, для локальных можно и таблицы открывать). а ты его так сразу отметаеш, открыть лишний раз таблицу видете ли лень. Открою небольшой секрет, ее вообше не нужно открывать, ни на запись ни на чтение, редактировать тоже запросами они разберутся как и когда ее отрывать закрывать.


 
Shuric   (2003-03-28 15:26) [5]

>sniknik ©

Ладно - ладно, не умничай ;) Я в свое время собаками объелся (до сих пор изжога) на поприще запросов. Просто для разных баз они несколько отличаются, и моем случае многие типы не доступны.


 
sniknik   (2003-03-28 15:54) [6]

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

говориш таблица индексированна, а используеш Locate (по частичному значению индекс не используется).
почему не
GotoKey или GotoNearest? можно с уточняющей проверкой. раз индекс есть. или в твоих компонентах нет GotoNearest? тогда читай первую строку поста.


 
Anatoly Podgoretsky   (2003-03-28 16:56) [7]

sniknik © (28.03.03 15:54)
Ты не умничай, ты скажи что делать


 
Shuric   (2003-03-28 17:56) [8]

>sniknik ©

Старый добрый Paradox, и стандартный TTable. Индекса как какового нет, его роль - primary index

>GotoKey или GotoNearest - по идее таже констукция, а скорость мне не нужна, т.к. записей мало. Таблица есть по сути зеркало каталога базы данных. Вроде все.

Наверно кардинально не упростить, но всеравно огромное спасибо sniknik © ;)



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

Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
7-54925
Holy
2003-02-27 12:08
2003.04.17
Очередь сообщений


6-54773
akello
2003-02-21 10:16
2003.04.17
как программно можно разрешить входящие подключения


7-54904
Gero-man
2003-02-23 12:17
2003.04.17
Отлов обращений к файлу


14-54852
seregin2003
2003-03-31 13:16
2003.04.17
---|Ветка была без названия|---


1-54623
NetKnight
2003-04-06 21:08
2003.04.17
Lookup Field in DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский