Форум: "Базы";
Текущий архив: 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