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

Вниз

Приветствую многоуважаемых Мастеров ! DBGrid->DataSource->Table ???   Найти похожие ветки 

 
IronHawk   (2002-02-22 11:04) [0]

С праздничком !

Проблема: Есть на одной форме DBGrid1 и DBGrid2 каждый завязан к своиму DataSource1 и DataSource2 соответственно,
далее DataSource1 и DataSource2 завязаны к своим Table1 и Table2,
которые в свою очередь связаны с базами Base1.dbf(с данными)и Base2.dbf(пустая) !!!
На форме так же присудствует кнопка ButtonW !
В полях, некоторых, столбца "Priznak" (в DBGrid1) есть симол "W" !!!


Внимание вопрос : Как по клику на кнопку ButtonW перенести строки в которэх есть, в полях столбца "Priznak" (в DBGrid1) симол "W" в DBGrid2 ???


 
Turalyon   (2002-02-22 11:20) [1]

>С праздничком !
И тебя так же.

Table1.First;
repeat
if StrScan ( PChar(Table1.FieldyName("Priznak").AsString), "W") then
begin
Table2.Insert;
.... Добавляем
Table2.Post;
end;
until not Table1.FindNext;


Примерно вот так, только повнимательней прочтай про функцию StrScan - она ищет символ в строке.... Ну это в обще направлени...


 
IronHawk   (2002-02-22 11:50) [2]

> Turalyon ©

Спасибо огромное !


ПЕРВЫЙ ТОЛКОВЫЙ И НАИБОЛЕЕ КОНКРЕТНЫЙ СОВЕТ ЗА 3-и ДНЯ !

... а ещё варианты есть ???


 
panov   (2002-02-22 12:07) [3]

procedure TForm1.Button1Click(Sender: TObject);
var
index: Integer;
begin
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
if DBGrid1.DataSource.DataSet.FieldValues["FlagField"] ="W" then
begin
DBGrid2.DataSource.DataSet.Append;
for index := 0 to DBGrid1.DataSource.DataSet.FieldCount-1 do
begin
DBGrid2.DataSource.DataSet.Fields[index] := DBGrid1.DataSource.DataSet.Fields[index];
end;
DBGrid2.DataSource.DataSet.Post;
end;
DBGrid1.DataSource.DataSet.Next;
end;
end;


 
IronHawk   (2002-02-22 12:18) [4]


>>> panov ©

Тоже очень хороший вариант !
Благодарю !


.... выслушаються и примуться к сведению ВСЕ варианты !


 
Turalyon   (2002-02-22 12:20) [5]

>panov ©

if DBGrid1.DataSource.DataSet.FieldValues["FlagField"] ="W" then

Сработает только если в поле FlagField равно только "W" а если значение поля будет "aasasWsds" то оно не пройдет... а IronHawk необходимо чтобы работало, если я правльно понял вопрос....


 
IronHawk   (2002-02-22 13:58) [6]


> Turalyon © (22.02.02 12:20)
> >panov ©
>
> if DBGrid1.DataSource.DataSet.FieldValues["FlagField"] ="W"
> then
>
> Сработает только если в поле FlagField равно только "W"
> а если значение поля будет "aasasWsds" то оно не пройдет...
> а IronHawk необходимо чтобы работало, если я правльно понял
> вопрос....


Да правильно !
Но я немного изменил DBGrid1 там в "FlagField" можно поставить ТОЛЬКО "W" !

СПАСИБО !


 
IronHawk   (2002-02-22 18:19) [7]

Трабл появился !
После "перекомпиляния" DBGrid1 перешел в ReadOnly и поставить "W"
или даже воспользоваться PickList-ом для этого НеЛьЗя !

... Как лечить ?


 
sniknik   (2002-02-22 20:03) [8]

Добавь еще Query можно будет использовать

INSERT INTO Base2.dbf SELECT * FROM Base2.dbf WHERE FlagField LIKE "%W%"

(самый быстрый вариант из всех возможных, если сравнивать с построчным перебором)
А трабл-проверь таблицу похожая вещь получается если таблица Read Only (не обязательно но возможно)


 
IronHawk   (2002-02-25 11:20) [9]

>>> sniknik ©

> Добавь еще Query можно будет использовать
>
> INSERT INTO Base2.dbf SELECT * FROM Base2.dbf WHERE FlagField
> LIKE "%W%"

Спасибо !
Но я б нехотел Query исспользовать !

Как бы так, это вылечить ?


 
sniknik   (2002-02-25 12:15) [10]

В смысле как вылечить? Не хочеш не используй, делай перенос переборкой в таблицах. Но в скорости проиграеш. Это понятно.
(причем очень прилично порядки приблизительно такие в BDE Dbf 3000 записей перенос 3сек INSERT <1сек, ADO Dbf перенос 1мин 40сек!!!!! INSERT < 1сек) С ADO сам не до конца разобрался но похоже такое время изза того что каждая выборка 1 значения перестраивается в SELECT а так как таблица не индексированна....


 
IronHawk   (2002-02-25 12:27) [11]

Всем спасибо !
Реализовал как сказал Turalyon ©
Работает за считанные доли секунды !
ВСЕМ СПАСИБО !



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

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

Наверх





Память: 0.47 MB
Время: 0.004 c
1-80526
Well
2002-03-13 10:53
2002.03.25
Скроллинг в TImage


6-80646
Hyper-X
2002-01-10 14:00
2002.03.25
Как зделать многопотоковой сервер чтоб обрабатывал много команд...


1-80536
deleon
2002-03-13 13:01
2002.03.25
С помощью какой функции можно нарисовать текст по правилу: & - подчеркивает символ (как в меню) ?


1-80537
dima_
2002-03-13 13:19
2002.03.25
Помогите чайнику с Tmemo...


3-80384
hooky-mars
2002-02-25 14:03
2002.03.25
Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский