Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 11:06 28.04.24 
Компютри и Интернет
   >> Delphi
Всички теми Следваща тема *Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Отчаяно се нуждая от помощ  
Авторbavnia (Нерегистриран)
Публикувано18.08.05 11:59



Аз съм напълно начинаещ във вашата област , но се опитвам да си направя програма свързана с бази данни.Въпроса ми е следния:Как мога всеки ред който получавам след определен select да го извеждам в отделно текстово поле така че да мога след това да го използвам като входен параметър на друга заявка?Използвах DBCtrlGrid там ги извеждам в отделни полета само че не мога да ги използвам за следваща заявка.
Благодаря ви предварително!



Тема Re: Отчаяно се нуждая от помощнови [re: bavnia]  
Авторeмил (Нерегистриран)
Публикувано18.08.05 12:40



Така както си го написал почти нищо не се разбира.
Коя е базата данни която ползваш? С какво се свързваш
към нея? БДЕ?

"Как мога всеки ред който получавам след определен select да го извеждам в отделно текстово поле..."

DBGrid не върши ли работа?

За да използваш резултатите от един селект за да съставиш
друг селект, не ти трябват визуални контроли. Получените
данни са в твоя DataSet, които ползваш (примерно TQuery).
Той си има методи FieldByName('my_field').AsЕдиКаквоСи
Всъщност моите отговори са от областта на телепатията :)
защото не е много ясно какво искаш - ако можеш опиши
по-ясно.
Освен това селест с данни от друг селект може да се направи
направо в базата като "обединиш" двата селекта в един
който да връща крайния резултат, който искаш.



Тема Re: Отчаяно се нуждая от помощнови [re: eмил]  
Авторbavnia (Нерегистриран)
Публикувано18.08.05 13:02



Приемам забележките и ще се опитам да се доуточня!
Базата ми е SQL с FireBird1.5.
За връзка използвам BDE.(поне само за него знам)
След select примерно ми излизат 5 номера тези пет номера мога да ги изкарам в DBGrid като колона но аз искам да се виждат в пет текстови полета примерно едно под друго но да са си самостоятелни.След това тези полета ги ползвам като входни параметри на пет други selecta (за сега това е което ми идва на ум за да мога да постигна целта си).А ги визуализирам защото трябва да се виждат.



Тема Re: Отчаяно се нуждая от помощнови [re: bavnia]  
Авторeмил (Нерегистриран)
Публикувано18.08.05 13:31



Значи имаш TQuery. За 5-те номера дето връща
селекта трябва да направиш цикъл по върнатите записи.
Нещо подобмо:


MyQuery.Open;
while not MyQuery.Eof do
begin
MyNumber:=MyQuery.FiledByName('MyField').AsInteger;
...
тук правиш нещо с този номер. примерно:
MySecondQuery.Params.ParamByName('MyParam').AsInteger:=MyNumber;
MySecondQuery.Open;
// тук правя нещо си с MySecondQuery ...

MyQuery.Next; //следващия номер
end;


А относно показването в отделни "текстови полета"
на екрана - първо предполагам, че имаш предвид TEdit?
Какво ще правиш ако са не 5 резултата, а 50? а 500?
На ако държиш да не е грид, а отделни полета
ще трябва динамично да създаваш Едити-те в необходимия
брой (според селекта) на формата. И да се погрижиш да могат
да се скролират ако са много.

ПП: не знам какво правиш, ама меко казано ми се
струва неправилно :)



Тема Re: Отчаяно се нуждая от помощнови [re: bavnia]  
Автор Desso_J (powermann)
Публикувано18.08.05 14:02



Емо добре ти е казал, че за да формираш следваща заявка не е необходимо показването на информацията във контроли, но може би това ти трябва и по друга причина...
Как става това?

Ако от BDE използваш компонент TQuery или TTable ето ти начина (емо го е написал но аз ще съм по-подробен).
Нека резултата на твоя селект да е две полета - integer и string.
След успешното изпълнение на селекта (добре е да е в блок try ... except ... end, за да не гърми програмата при евентуални грешки) се използва следната конструкция:

Edit1.Text:=Query1.FieldByName('<Името на твоето поле, независимо от типа на полето>').AsString;

Ако ти трябва полето от тип integer като число използвай:

<променлива от тип integer>:=Query1.FieldByName('<Името на твоето поле>').AsInteger;

Може и така:
<променлива от тип integer>:=Query1.Fields[<Номер по ред на твоето поле>].AsInteger;

Успех!



Тема Опит за още малко помощнови [re: bavnia]  
Автор VladoVasilev (минаващ)
Публикувано18.08.05 14:47



Това с TEDIT-ите може да стане така: декларираш си в класа на формата един array of TEDIT:

TForm1 = Class(TForm)
... //deklaracii na razni obekti - TEDIT, DATASOURCE....
arrEdits : array of edit; //tova ot tebe
end;
var Form1 : TForm1;
implementation

procedure FormCreate(Sender : TObject);
var i : integer;
begin
SetLength(arrEdits, MyDataSet.recordCount-1);
for i := 1 to MyDataSet.recordCount do
begin
MyDataSet.RecNo := i;
arrEdits[i-1] := TEdit.Create(Self);
arrEdits[i-1].Name := 'EDIT'+inttostr(i);
arrEdits[i-1].Left := 5;
arrEdits[i-1].Top := 30*i+5; //za da se pozicionirat edin pod drug...
arrEdits[i-1].Text := MyDataSet.FieldByName('NESHTO_SI').asString;
end;
end;

Имай впредвид, че в даден момент edit-ите ще станат много и няма да се съберат в/у формата - ако има такава възможност, може да ги разположиш в/у един ScrollBox. Освен това, ако случайно ползваш IBEXPRESS-компоненти (от таб-а с компоненти INTERBASE) MyDataSet.recordCount може да не върне броя записи - там има малък бъг, по-добре в този случай използвай "while not MyDataSet.Eof do....", както беше написано по-горе по темата..
Дано съм помогнал!!!



Тема Re: Опит за още малко помощнови [re: VladoVasilev]  
Автор mole. (минаващ)
Публикувано18.08.05 15:19



Чудя се дали в случая не би било удобно да се използва DBCtrlGrid със съответните визуализиращи компоненти?



Тема Re: Отчаяно се нуждая от помощнови [re: eмил]  
Автор bavnia (непознат )
Публикувано19.08.05 14:52



Благодаря ви за съдействието.Аз така или иначе нищо не разбрах пак ама щом мислите че така трябва да стане ще се опитам да го разбера.Ще се мъча пак.
Благодаря ви пак.



Тема Re: Опит за още малко помощнови [re: VladoVasilev]  
Автор bavnia (непознат )
Публикувано01.09.05 13:38



Дава ми съобщение че FieldForm1.arrEdits not have corresponding component и не знам от какво може да е!



Тема Re: Опит за още малко помощнови [re: bavnia]  
Автор Formal (незнаещ)
Публикувано02.09.05 11:20



Премести arrEdits от published (първата) в public секцията на формата.




Страници по тази тема: 1 | 2 | >> (покажи всички)
Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.