Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADOTable позиция


Страницы:   1 2 3 4 5 6

Andrewtitoff ©   (2009-11-10 14:03:00) 

Как в реальном времени отображать позицию ADOTable и кол -во записей?
т.е. я понимаю что это
ADOTable.RecNo и ADOTable.RecordCount, только как лучше всего всего их отобрахать в Статусбаре?, можно ли не прибегать к таймеру?


Andrewtitoff   (2009-11-11 11:02:00) [41]


> Sergey13 ©   (11.11.09 10:55) [69]
> > [67] Andrewtitoff ©   (11.11.09 10:52)> Ну а это вам кто
> сказал?...> [43] andrewtitoff ©   (10.11.09 19:48)> грид
> там действительно есть, но это не  значит что бабушка >
> его обязательно видит, грид только для избранных, а бабушка
> > просто выбирает в меню "поиск", выбирает нужные ей параметры
> > и появляется "чудесная форма", но форма отображает только
> > одну запись, а в статус баре должно писаться что мол по
> > вашим, бабушка критериям отобрано х-записей, а сейчас
> вы > просматриваете из них запись № у....Как понимать тебя,
>  Саид? (с)


Ну так и понимать - что кому нужно - могут на грид смотрет, кому не нужно - на чудо форму, а для привередливых - грид на заднем фоне за формой...


Dennis I. Komarov   (2009-11-11 10:59:00) [42]


> но некоторым типа меня нужно и таблица

MS Аксесс спасет


Andrewtitoff   (2009-11-11 10:59:00) [43]


> Сергей М. ©   (11.11.09 10:53) [68]
> > имел ввиду рабочий вариант, а не заведомо ложныйЯ не знаю
> кого или чего и в какой позиции ты там имел, но AfterScroll
> вызывается при позиционировании на существующую запись в
> результате явных или неявных вызовов методов методов навигации
> объекта TDataSet.

Ну в общем то конечно тут я не могу утверждать что не получил что хотел - просто как мне показалось - вы когда это писали уже заранее знали что будет такая ошибка.....

procedure TForm1.ADOTable4AfterScroll(DataSet: TDataSet);
begin
Form2.StatusBar1.SimpleText:='Запись № '+inttostr(ADOTable4.RecNo)+' из '+inttostr(ADOTable4.RecordCount);
end;

ошибка при запуске программы возникает....


unit Start;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, Gauges, jpeg, StdCtrls, ADODB,
 ComCtrls,  DBCtrls,  DB;//, DBClient, Mask;

type
 TStartForm = class(TForm)
   Gauge1: TGauge;
   Image1: TImage;
   Label1: TLabel;
   Label2: TLabel;
   procedure FormActivate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 StartForm: TStartForm;

implementation

uses MainUnit, Unit2, Unit3;

{$R *.dfm}

procedure TStartForm.FormActivate(Sender: TObject);
var
i : integer;
c : boolean;
n: integer;
s : string;

begin
Gauge1.Progress:=0;
Application.ProcessMessages;

Form1.DBGrid5.Visible:=false;

Form1.ADOQuery1.CursorType := ctOpenForwardOnly;
for i := 0 to Form2.ComponentCount - 1 do
if Form2.Components[i] is TDBComboBox then
 with TDBComboBox(Form2.Components[i]) do
  begin
  Form1.ADOQuery1.SQL.Text:=Format('select distinct %s from lift',[Form1.ADOTable4.Fields[tag].FieldName]);
  Form1.ADOQuery1.Open;
  Application.ProcessMessages;
  StartForm.Label1.Caption:='Загружаю список: '+Form1.ADOTable4.Fields[tag].FieldName;
  Gauge1.Progress:=I;
  while not Form1.ADOQuery1.Eof do
   begin
   Items.Add(Form1.ADOQuery1.Fields[0].AsString);
   Form1.ADOQuery1.Next;
   end;
  end;

Form1.ADOQuery1.SQL.Text := 'select distinct REGNUM from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
Form2.ComboBox0.Items.Add(Form1.ADOQuery1.Fields[0].AsString);
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю лифты, Рег. №: '+Form1.ADOQuery1.Fields[0].AsString;
Gauge1.Progress:=I+trunc(Form1.ADOQuery1.RecNo/10);
end;

Form1.ADOQuery1.SQL.Text := 'select distinct STREET from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox1.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else  Form2.ComboBox1.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Улицы : '+Form1.ADOQuery1.Fields[0].AsString;
end;

Form1.ADOQuery1.SQL.Text := 'select distinct HOUSE from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox2.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else  Form2.ComboBox2.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Дома : '+Form1.ADOQuery1.Fields[0].AsString;
end;

Form1.ADOQuery1.SQL.Text := 'select distinct CORP from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox3.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else  Form2.ComboBox3.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Корпуса : '+Form1.ADOQuery1.Fields[0].AsString;
end;

Form1.ADOQuery1.SQL.Text := 'select distinct PARNUM from lift';
Form1.ADOQuery1.Open;
while not Form1.ADOQuery1.Eof do
begin
if Form1.ADOQuery1.Fields[0].AsString<>'' then Form2.ComboBox4.Items.Add(Form1.ADOQuery1.Fields[0].AsString)
else  Form2.ComboBox4.Items.Add('нет');
Form1.ADOQuery1.Next;
Application.ProcessMessages;
StartForm.Label1.Caption:='Загружаю Парадные : '+Form1.ADOQuery1.Fields[0].AsString;
end;

 n:=Gauge1.Progress;
 for I :=n  to 1000 do
 Gauge1.Progress:=I;

Form1.DBGrid5.Visible:=true;
 end;
end.


эта форма запускается перед запуском основной т.е.
program Base_Util;

uses
 Forms,
 Dialogs,
 MainUnit in 'MainUnit.pas' {Form1},
 Unit2 in 'Unit2.pas' {Form2},
 Unit3 in 'Unit3.pas' {Form3},
 Start in 'Start.pas' {StartForm},
 FirstHinstanceRunning_ in 'FirstHinstanceRunning_.pas',
 gsCatcher in 'gsCatcher.pas';

{$R *.res}

begin
   GetDir(0,MD);
 Application.Initialize;

if FirstHinstanceRunning(1) then
  begin Showmessage('Программа уже запущена!'); Exit; end;

 Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
 StartForm := TStartForm.Create(Application);
 StartForm.Show;
 StartForm.Update;
 while StartForm.Gauge1.Progress<>1000 do
   Application.ProcessMessages;

 Application.Title := 'Лифтовая аварийная служба';

 StartForm.Hide;
 StartForm.Free;

 Application.CreateForm(TForm3, Form3);

 Application.Run;
end.


Sergey13   (2009-11-11 10:55:00) [44]

> [67] Andrewtitoff ©   (11.11.09 10:52)
> Ну а это вам кто сказал?...

> [43] andrewtitoff ©   (10.11.09 19:48)
> грид там действительно есть, но это не  значит что бабушка
> его обязательно видит, грид только для избранных, а бабушка
> просто выбирает в меню "поиск", выбирает нужные ей параметры
> и появляется "чудесная форма", но форма отображает только
> одну запись, а в статус баре должно писаться что мол по
> вашим, бабушка критериям отобрано х-записей, а сейчас вы
> просматриваете из них запись № у....

Как понимать тебя, Саид? (с)


Сергей М.   (2009-11-11 10:53:00) [45]


> имел ввиду рабочий вариант, а не заведомо ложный


Я не знаю кого или чего и в какой позиции ты там имел, но AfterScroll вызывается при позиционировании на существующую запись в результате явных или неявных вызовов методов методов навигации объекта TDataSet.


Andrewtitoff   (2009-11-11 10:52:00) [46]


> Sergey13 ©   (11.11.09 10:49) [66]
> > [64] Anatoly Podgoretsky ©   (11.11.09 10:32)Да он и не
> редактирует в нем. Он его даже на посмотреть не выводит.
>  8-)

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


Andrewtitoff   (2009-11-11 10:49:00) [47]


> Сергей М. ©   (11.11.09 10:05) [59]
> > уже пробовал - сразу ошибку выдает....> Access violation
> at address 00404F84Ты сам сказал, что "все будет ок".Ну
> раз ок, то какие претензии ?)Проблемы индейцев шерифа не
> волнуют)

Не, я имел ввиду рабочий вариант, а не заведомо ложный... =)))
> Sergey13 ©   (11.11.09 10:14) [60]
> > [58] Andrewtitoff ©   (11.11.09 10:02)> Да люблю я людей,
>  просто так надо... =))))> Тем более в таблице 80 полейВ
> гриде количество полей может быть любым.

Да это понятно, но во первых это не удобно, а во вторых не будет же каждый раз пользователь выставлять галочки около 80-ти полей что ему показывать, а что нет...


> Dennis I. Komarov ©   (11.11.09 10:30) [63]
> Пользователь вообще не должен знать о существовании неких
> таблиц, полей, записей, и тем более править какие-то значения
> в гриде %)У пользователя должен быть понятный интерфейс,
>  А НЕ НАЗВАНИЕ ПОЛЕЙ ТАБЛИЦ


Ну так и я про то же, для этого и существует чудесная форма!, но некоторым типа меня нужно и таблица!, а целом я про это и говор!


> Anatoly Podgoretsky ©   (11.11.09 10:32) [64]
> > В гриде количество полей может быть любым.И в гриде совсем
> не обязательно редактировать, а при таких проблемах это
> должно быть категорически запрещено.


В смысле?, при каких проблемх?


Sergey13   (2009-11-11 10:49:00) [48]

> [64] Anatoly Podgoretsky ©   (11.11.09 10:32)

Да он и не редактирует в нем. Он его даже на посмотреть не выводит. 8-)


Anatoly Podgoretsky   (2009-11-11 10:32:00) [49]


> В гриде количество полей может быть любым.

И в гриде совсем не обязательно редактировать, а при таких проблемах это должно быть категорически запрещено.


Dennis I. Komarov   (2009-11-11 10:30:00) [50]

Пользователь вообще не должен знать о существовании неких таблиц, полей, записей, и тем более править какие-то значения в гриде %)
У пользователя должен быть понятныйинтерфейс, А НЕ НАЗВАНИЕ ПОЛЕЙ ТАБЛИЦ


Anatoly Podgoretsky   (2009-11-11 10:25:00) [51]

> andrewtitoff  (11.11.2009 00:44:51)  [51]

Ну чисто халявная позиция, вы не только дайте, но еще и ложку ко рту поднесите, но не просто так, а вот так.


Anatoly Podgoretsky   (2009-11-11 10:23:00) [52]

> sniknik  (10.11.2009 23:37:50)  [50]

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

Бред это когда человек, что то бормочет, а что непонятно, ну как с тобой.


Sergey13   (2009-11-11 10:14:00) [53]

> [58] Andrewtitoff ©   (11.11.09 10:02)
> Да люблю я людей, просто так надо... =))))
> Тем более в таблице 80 полей

В гриде количество полей может быть любым.


Сергей М.   (2009-11-11 10:05:00) [54]


> уже пробовал - сразу ошибку выдает....
> Access violation at address 00404F84


Ты самсказал, что "все будет ок".
Ну раз ок, то какие претензии ?)

Проблемы индейцев шерифа не волнуют)


Andrewtitoff   (2009-11-11 10:02:00) [55]


> Германн ©   (11.11.09 01:21) [55]
> > andrewtitoff ©   (11.11.09 01:07) [54]> По поводу обьяснять
> - согласен, это дело не легкое и утомительное,>  сам в свое
> время замещал в техникуме преподавателя информатики > когда
> изучали ДОС, чесно скажу после пары практических занятий
> > я "писал кипятком" и крыл всех трехэтажным матом.... =)))))Ты
> когда замещал преподавателя работал в режиме "лекции/семинара"
> или в режиме диалога?


И то и другое, но бесился естественно в режиме диалога, там было пол урока теория, а вторая половина - практика...


> > Ну тогда если вам по каким либо причинам нехочется объяснять
> > - Вы можете вместо того что бы умничать - тупо ответить
> > на поставленный вопрос?Вот теперь я понял, что "тупо ответить
> на поставленный вопрос" == дать код. Но далеко не всегда
> можно дать код на "неправильный" вопрос.


Ну не совсем в явном виде код - но близко к тому
> > Например по данной теме: плюньте что адотейбл нехорошая
> > вещь - это моя проблема и мне с ней мучаться просто скажите
> > что то вроде : в адотейбл есть такое-то свойство, обработчик
> > куда можно мою процедуру вывода этих двух значений и все
> > будет ок...> А это уже совсем непонятно. Какие два значения?
>  RecNo & RecordCount?


Ну можно ли куда нибудь запихнуть вывод этих значений что бы при изменении любого из них они обновлялись на форме?


> Sergey13 ©   (11.11.09 08:36) [56]
> > [43] andrewtitoff ©   (10.11.09 19:48)> грид только для
> избранныхЗа что ты так людей не любишь? 8-)Вот бы тебе в
> гугле такое сделать. Ввел строку поиска, а тебя сразу на
> первую ссылку, и "далее со всеми остановками".


Да люблю я людей, просто так надо... =))))
Тем более в таблице 80 полей, из которых пользователю нужны не больше половины и просистав вправо они просто потеряют нужную строчку и исправят ненароком не ту строчку, тем более в родной проге столбцы по руски не подписаны, они автоматом называются как поле и не так просто догодаться что столбец "EWHO" - это оказывается кто проводил экспертизу...


> Сергей М. ©   (11.11.09 09:18) [57]
> > просто скажите что то вроде : в адотейбл есть такое-то
> свойство,>  обработчик куда можно мою процедуру вывода этих
> двух значений > и все будет окOnAfterScrollИ попробуй только
> после всего этого захныкать, что не все или не ок)

Я это уже пробовал - сразу ошибку выдает.... =((((
Access violation at address 00404F84 ....


Сергей М.   (2009-11-11 09:18:00) [56]


> просто скажите что то вроде : в адотейбл есть такое-то свойство,
>  обработчик куда можно мою процедуру вывода этих двух значений
> и все будет ок


OnAfterScroll

И попробуй только после всего этого захныкать, что не все или не ок)


Sergey13   (2009-11-11 08:36:00) [57]

> [43] andrewtitoff ©   (10.11.09 19:48)
> грид только для избранных

За что ты так людей не любишь? 8-)
Вот бы тебе в гугле такое сделать. Ввел строку поиска, а тебя сразу на первую ссылку, и "далее со всеми остановками".


Германн   (2009-11-11 01:21:00) [58]


> andrewtitoff ©   (11.11.09 01:07) [54]


> По поводу обьяснять - согласен, это дело не легкое и утомительное,
>  сам в свое время замещал в техникуме преподавателя информатики
> когда изучали ДОС, чесно скажу после пары практических занятий
> я "писал кипятком" и крыл всех трехэтажным матом.... =)))))

Ты когда замещал преподавателя работал в режиме "лекции/семинара" или в режиме диалога?


> Ну тогда если вам по каким либо причинам нехочется объяснять
> - Вы можете вместо того что бы умничать - тупо ответить
> на поставленный вопрос?

Вот теперь я понял, что "тупо ответить на поставленный вопрос" == дать код. Но далеко не всегда можно дать код на "неправильный" вопрос.

> Например по данной теме: плюньте что адотейбл нехорошая
> вещь - это моя проблема и мне с ней мучаться просто скажите
> что то вроде : в адотейбл есть такое-то свойство, обработчик
> куда можно мою процедуру вывода этих двух значений и все
> будет ок...
>

А это уже совсем непонятно. Какие два значения?
RecNo & RecordCount?


andrewtitoff   (2009-11-11 01:07:00) [59]


> Германн ©   (11.11.09 00:55) [53]
> > andrewtitoff ©   (11.11.09 00:44) [51]> По поводу обучения
> - нужно либо тупо отвечать на мои вопросы > либо обьяснять
> нормально что к чему и почему, а не гнуть > пальцы что я
> все делаю не так..."Тупые" ответы ты игнорируешь, спрашиваешь
> почему. Но объяснить тебе "почему" нереально. Слишком длинная
> лекция порой получится. Тезис "ты делаешь всё не так" -
> это не гнутые пальцы, это факт. Но объяснение этого - это
> тоже не хилая лекция.Так что я вижу только три варианта:
>   1. Ты платишь кому-то за программу.  2. Ты начинаешь учиться
> (читать учебники, причем от корки до корки).  3. Ты плюёшь
> на всё это и живёшь своей жизнью забыв про эту программу.
>  А заодно и про любые другие программы.


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

По поводу обьяснять - согласен, это дело не легкое и утомительное, сам в свое время замещал в техникуме преподавателя информатики когда изучали ДОС, чесно скажу после пары практических занятий я "писал кипятком" и крыл всех трехэтажным матом.... =)))))
Ну тогда если вам по каким либо причинам нехочется объяснять - Вы можете вместо того что бы умничать - тупо ответить на поставленный вопрос?

Например по данной теме: плюньте что адотейбл нехорошая вещь - это моя проблема и мне с ней мучаться просто скажите что то вроде : в адотейбл есть такое-то свойство, обработчик куда можно мою процедуру вывода этих двух значений и все будет ок...


Германн   (2009-11-11 00:55:00) [60]


> andrewtitoff ©   (11.11.09 00:44) [51]


> По поводу обучения - нужно либо тупо отвечать на мои вопросы
> либо обьяснять нормально что к чему и почему, а не гнуть
> пальцы что я все делаю не так...

"Тупые" ответы ты игнорируешь, спрашиваешь почему. Но объяснить тебе "почему" нереально. Слишком длинная лекция порой получится. Тезис "ты делаешь всё не так" - это не гнутые пальцы, это факт. Но объяснение этого - это тоже не хилая лекция.
Так что я вижу только три варианта:
 1. Ты платишь кому-то за программу.
 2. Ты начинаешь учиться (читать учебники, причем от корки до корки).
 3. Ты плюёшь на всё это и живёшь своей жизнью забыв про эту программу. А заодно и про любые другие программы.


Страницы:   1 2 3 4 5 6

Наверх

Титульная страница Поиск, карта сайта Написать письмо