информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetSpanning Tree Protocol: недокументированное применениеСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Sql запрос и еще... 17.09.02 12:57  Число просмотров: 1052
Автор: _Inquisitor_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> А можно ли сделать запрос не через имя столбца, а через
> его порядковый номер
А как ты это себе представляешь?
>Зачем мне это? Если имя столбца состоит из 2-х слов
> разделенных пробелом,
Избавься от пробелов! В Oracle, например, ты не сможешь создать поле в имени которого есть пробелы. Если же ты работаешь с Access, то попробуй использовать что-то типа Table.[Имя поля с пробелом] на счет других СУБД не в курсе.

> 2) Допустим в моем приложении в delphi есть 20 чекбоксов на
> одной форме с именами cb_1, cb_2, ..., cb_20. Я проверяю их
> значение и в зависимости от их значения я делаю в общемто
> одну и туже апперацию. Например:
> if cb_1.checked=true then zzz:=zzz+cb_1.caption+', '; //
> zzz: string
> if cb_2.checked=true then zzz:=zzz+cb_2.caption+', ';
> ...
> if cb_20.checked=true then zzz:=zzz+cb_20.caption;
> Видно, что я делаю почти одно и тоже. Можно ли это
> подсократить?
А в какой момент времени ты формируешь строку? Если при установке чека, то напиши процедурку, и перенаправь событие OnClick для каждого CheckBox'а на нее. Ну что-то типа
procedure TForm1.CheckBox1OnClick (Sender: Tobject);
begin
Do_On_CheckBoxClick(Sender);
end;
procedure TForm1.Do_On_CheckBoxClick(Sender: Tobject);
begin
if Sender is TCheckBox then zzz:=zzz+(Sender as TCheckBox).Caption;
end;
На счет конкретной реализации могу ошибаться, но идея такова. Если же ты формируешь строку при нажатии кнопки (например), то боюсь что тут уж ничего и не урежешь, придется описывать все ручками.
<programming>
Sql запрос и еще... 16.09.02 11:13   [ZloyShaman]
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
sql в delphi
Вопрос:
1) Можно сделать sql запрос такого рода: select fieldA, fieldB, fieldC from tableA
А можно ли сделать запрос не через имя столбца, а через его порядковый номер (можно так сортировать, но мне это не надо). Зачем мне это? Если имя столбца состоит из 2-х слов разделенных пробелом, типа Код Товара то при select Код Товара from tamle1 он ничего ненайдет и будет ругатьтся, что нет такого столбца как Код.
2) Допустим в моем приложении в delphi есть 20 чекбоксов на одной форме с именами cb_1, cb_2, ..., cb_20. Я проверяю их значение и в зависимости от их значения я делаю в общемто одну и туже апперацию. Например:
if cb_1.checked=true then zzz:=zzz+cb_1.caption+', '; // zzz: string
if cb_2.checked=true then zzz:=zzz+cb_2.caption+', ';
...
if cb_20.checked=true then zzz:=zzz+cb_20.caption;
Видно, что я делаю почти одно и тоже. Можно ли это подсократить?
Я пытался делать так: form.companents[N].name - но это даст только его имя,
можно получить tag но это тоже нето. Как?
Sql запрос и еще... 17.09.02 13:24  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> 2) Допустим в моем приложении в delphi есть 20 чекбоксов на
> одной форме с именами cb_1, cb_2, ..., cb_20. Я проверяю их
> значение и в зависимости от их значения я делаю в общемто
> одну и туже апперацию. Например:
> if cb_1.checked=true then zzz:=zzz+cb_1.caption+', '; //
> zzz: string
> if cb_2.checked=true then zzz:=zzz+cb_2.caption+', ';
> ...
> if cb_20.checked=true then zzz:=zzz+cb_20.caption;

А если так:

for I:=0 to Form.ComponentCount-1 do begin
  if StrLeft(Form.Components[I].Name, 3)="cb_" then begin
    if Form.Components[I].Checked=1 then begin
      zzz := zzz + Form.Components[I].Caption;
    end;
  end;
end;

---
Sql запрос и еще... 17.09.02 13:35  
Автор: _Inquisitor_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> А если так:
>
>
> for I:=0 to Form.ComponentCount-1 do begin
>   if StrLeft(Form.Components[I].Name, 3)="cb_" then begin
>     if Form.Components[I].Checked=1 then begin
>       zzz := zzz + Form.Components[I].Caption;
>     end;
>   end;
> end;
> 

---
Sorry pal, так не получиться. По причине того что не у каждого компонента есть свойство Caption :-(
И мой совет(не в обиду), прежде чем что-либо написать проверь это на своей машине. А то, как-то некрасиво получается.
Sql запрос и еще... 20.09.02 13:07  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> > А если так:
> >
> >
> > for I:=0 to Form.ComponentCount-1 do begin
> >   if StrLeft(Form.Components[I].Name, 3)="cb_" then
> begin
> >	 if Form.Components[I].Checked=1 then begin
> >	   zzz := zzz + Form.Components[I].Caption;
> >	 end;
> >   end;
> > end;
> > 

---
> Sorry pal, так не получиться. По причине того что не у
> каждого компонента есть свойство Caption :-(

Так в коде сначала имя компонента проверяется. Если в начале имени стоит "cb_", то подразумевается что это чекбокс.

> И мой совет(не в обиду), прежде чем что-либо написать
> проверь это на своей машине. А то, как-то некрасиво
> получается.

Не на чем проверить, нету Дельфы на тачке, писал по памяти, просто как пример, для иллюстрации хода мыслей. Если не работает - уж извини... :))
Sql запрос и еще... 17.09.02 12:57  
Автор: _Inquisitor_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> А можно ли сделать запрос не через имя столбца, а через
> его порядковый номер
А как ты это себе представляешь?
>Зачем мне это? Если имя столбца состоит из 2-х слов
> разделенных пробелом,
Избавься от пробелов! В Oracle, например, ты не сможешь создать поле в имени которого есть пробелы. Если же ты работаешь с Access, то попробуй использовать что-то типа Table.[Имя поля с пробелом] на счет других СУБД не в курсе.

> 2) Допустим в моем приложении в delphi есть 20 чекбоксов на
> одной форме с именами cb_1, cb_2, ..., cb_20. Я проверяю их
> значение и в зависимости от их значения я делаю в общемто
> одну и туже апперацию. Например:
> if cb_1.checked=true then zzz:=zzz+cb_1.caption+', '; //
> zzz: string
> if cb_2.checked=true then zzz:=zzz+cb_2.caption+', ';
> ...
> if cb_20.checked=true then zzz:=zzz+cb_20.caption;
> Видно, что я делаю почти одно и тоже. Можно ли это
> подсократить?
А в какой момент времени ты формируешь строку? Если при установке чека, то напиши процедурку, и перенаправь событие OnClick для каждого CheckBox'а на нее. Ну что-то типа
procedure TForm1.CheckBox1OnClick (Sender: Tobject);
begin
Do_On_CheckBoxClick(Sender);
end;
procedure TForm1.Do_On_CheckBoxClick(Sender: Tobject);
begin
if Sender is TCheckBox then zzz:=zzz+(Sender as TCheckBox).Caption;
end;
На счет конкретной реализации могу ошибаться, но идея такова. Если же ты формируешь строку при нажатии кнопки (например), то боюсь что тут уж ничего и не урежешь, придется описывать все ручками.
Sql запрос и еще... 17.09.02 14:17  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> А в какой момент времени ты формируешь строку? Если при
> установке чека, то напиши процедурку, и перенаправь событие
> OnClick для каждого CheckBox'а на нее. Ну что-то типа
> procedure TForm1.CheckBox1OnClick (Sender: Tobject);
> begin
> Do_On_CheckBoxClick(Sender);
> end;
> procedure TForm1.Do_On_CheckBoxClick(Sender: Tobject);
> begin
> if Sender is TCheckBox then zzz:=zzz+(Sender as
> TCheckBox).Caption;
> end;
> На счет конкретной реализации могу ошибаться, но идея
> такова. Если же ты формируешь строку при нажатии кнопки
> (например), то боюсь что тут уж ничего и не урежешь,
> придется описывать все ручками.

Фигня в том, что чеки уже сформированы и мне при закрытии окна с чеками надо считать их значения (т.е. при событии OnClose), сформировать zzz из их caption. Нормальным способом будет долго и много, надо короче ...
Sql запрос и еще... 17.09.02 14:50  
Автор: _Inquisitor_ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Фигня в том, что чеки уже сформированы и мне при закрытии
> окна с чеками надо считать их значения (т.е. при событии
> OnClose), сформировать zzz из их caption. Нормальным
> способом будет долго и много, надо короче ...
Ну тогда что-то типа
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i: integer;
TC: TComponent;
begin
For i:=0 to Form1.ComponentCount-1 do
begin
TC:=Form1.Component[i];
if (TC is TCheckBox) then
if (TC as TCheckBox).Checked then zzz:=zzz+(TC as TCheckBox).Caption;
end;
end;
PS Научись общаться с хелпом, иногда помогает ;-))
Сянкью, 18.09.02 09:25  
Автор: ASJinx Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> PS Научись общаться с хелпом, иногда помогает ;-))

Научусь...
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach