Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2010, 11:46   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
но с ошибкой разобрался
Что-то не вижу чтоб разобрался.
Вот я бы на твоем месте написал хотя бы читабельно:
Код:
   
begin
 With datamodule2.IBQuery3 do begin
  Open;
   label1.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
   if not FindNext then exit;
   label2.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
   if not FindNext then exit;
   label3.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
 Close;
end;
И прошелся по шагам, а вдруг поле NAME пустые?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2010, 11:51   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
procedure TForm1. FormCreate(Sender: TObject);
Попробуй не в procedure
Код:
TForm1. FormCreate(Sender: TObject);
, а в
Код:
procedure TForm1. FormActivate(Sender: TObject);
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.04.2010, 11:57   #13
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
Код:
 procedure TForm1. FormCreate(Sender: TObject);
   begin
        datamodule2.IBQuery3.Open;
        label1.Caption:=  datamodule2.IBQuery3.FindField('NAME').AsString +'   '+
           datamodule2.IBQuery3.FindField('DAT').AsString;
      datamodule2.IBQuery3.Next;
   label2.Caption:=  datamodule2.IBQuery3.FindField('NAME').AsString +'   '+
        datamodule2.IBQuery3.FindField('DAT').AsString;
    datamodule2.IBQuery3.Next;
   label3.Caption:=  datamodule2.IBQuery3.FindField('NAME').AsString +'   '+
       datamodule2.IBQuery3.FindField('DAT').AsString;
 datamodule2.IBQuery3.Open;
 datamodule2.IBQuery3.Close;

   //datamodule2.IBQuery3.ExecSQL;
end;
этот код лучше вешать на событие onShow формы
а зачем выделенная строка? )
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 21.04.2010, 12:12   #14
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Что-то не вижу чтоб разобрался.
Вот я бы на твоем месте написал хотя бы читабельно:
Код:
   
begin
 With datamodule2.IBQuery3 do begin
  Open;
   label1.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
   if not FindNext then exit;
   label2.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
   if not FindNext then exit;
   label3.Caption:=FindField('NAME').AsString +'   '+FindField('DAT').AsString;
 Close;
end;
И прошелся по шагам, а вдруг поле NAME пустые?
не пустые, проверил - просто не хочет посему то выводить русские символы, хотя в базе они вполне заполняются может что то с настройками?

в твоем варианте выводит только первую запись, хотя остальные есть....

Цитата:
Сообщение от artemavd Посмотреть сообщение
Попробуй не в procedure
Код:
TForm1. FormCreate(Sender: TObject);
, а в
Код:
procedure TForm1. FormActivate(Sender: TObject);
все равно тож самое

и вообще ребят, ПОЧЕМУ У МЕНЯ НЕ СРАЗУ ОБНОВЛЯЮТСЯ ДАННЫЕ В ПРИЛОЖЕНИЯ, т е из одной формы заполняю, перехожу на другую которая должна вывести эти данные, а она не выводит.....выводит только после перезапуска приложения ?!?!?!? как так?
пожалейте новичка

Последний раз редактировалось Stilet; 21.04.2010 в 12:41.
Domanoff вне форума Ответить с цитированием
Старый 21.04.2010, 12:30   #15
Dark_Spirit
Форумчанин
 
Аватар для Dark_Spirit
 
Регистрация: 05.02.2009
Сообщений: 324
По умолчанию

Цитата:
перехожу на другую которая должна вывести эти данные, а она не выводит.....выводит только после перезапуска приложения ?!?!?!? как так?
на второй форме переоткрой набор для отображения данных
Тяжело быть бестолковым.....
Dark_Spirit вне форума Ответить с цитированием
Старый 21.04.2010, 12:42   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Domanoff
Ты можешь прикрепить архив проекта с базой сюда?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2010, 14:09   #17
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

что это за ошибка - XSQLDA index out of range?

с ошибкой этой! и со всеми косяками вообщем

ребят вроде все исправил кроме вывода при активации формы и еще
Код:
SELECT NAME, DAT
FROM MEROPRIAT

order BY 2 desc
это по убыванию сортировка, а по возрастанию как и еще хотелось бы добавить чтоб сортировала только меньше текущей даты как это сварганить?

Цитата:
Сообщение от Dark_Spirit Посмотреть сообщение
на второй форме переоткрой набор для отображения данных
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin

datamodule2.IBQuery2.Open;
 datamodule2.IBQuery2.close;

   datamodule2.IBQuery2.Open;

 label1.Caption:=   datamodule2.IBQuery2.FindField('NAME').AsString +'   '+

  datamodule2.IBQuery2.FindField('DAT').AsString;
      datamodule2.IBQuery2.Next;
   label2.Caption:=   datamodule2.IBQuery2.FindField('NAME').AsString +'   '+

  datamodule2.IBQuery2.FindField('DAT').AsString;
    datamodule2.IBQuery2.Next;
   label3.Caption:=   datamodule2.IBQuery2.FindField('NAME').AsString +'   '+

  datamodule2.IBQuery2.FindField('DAT').AsString;
     datamodule2.IBQuery2.close;
end;
вот так? не работатет(, обновляется только если я вроде как это же делаю в другой форме, (вместе с операцией заполнения при помощи другого query)

From Stilet: Прекращай подряд сообщения постить, читать неудобно. У нас для этого есть кнопка правки.
Вложения
Тип файла: rar Новая папка.rar (378.8 Кб, 7 просмотров)
пожалейте новичка

Последний раз редактировалось Stilet; 21.04.2010 в 14:20.
Domanoff вне форума Ответить с цитированием
Старый 21.04.2010, 14:25   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а по возрастанию как
order BY 2 asc
Цитата:
сортировала только меньше текущей даты
Ну не знаю как в интербейсе, а в MS SQL есть
Where DAT<SYSTEMDATETIME().
Вот узнай есть ли в интербейсе что-то типа SYSTEMDATETIME() и напиши такое условие перед Order
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.04.2010, 14:55   #19
Domanoff
Форумчанин
 
Регистрация: 05.03.2010
Сообщений: 125
По умолчанию

вроде получилось приблизительно насчет запроса спасибо щас проверю, расскажите все же как при активации чтоб выводило почему у мя не выводит?
пожалейте новичка
Domanoff вне форума Ответить с цитированием
Старый 21.04.2010, 15:17   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну этого я пожалуй тебе не смогу сказать. Оказывается я Интербейс у ся грохнул давно...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с базой плз. Милашка12 Microsoft Office Access 1 08.12.2009 17:16
Проблема с Базой Данных M|a|G Помощь студентам 1 15.05.2009 11:12
проблема с базой 4321 Общие вопросы Delphi 1 19.09.2008 16:00