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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 13:12   #11
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Всем спасибо, но ситуация подробно описана и актуальна реальная помощь, а не общие рассуждения. Если кто-то может написать код для:
Цитата:
Придумал как можно проверить, только не знаю как это реализовать... вопрос разумеется тупой - есть юнит DataModule, то есть без формы, в нём много чего происходит, а на выходе должен быть заполнен Datasource данными. Как можно из этого DataModule при помощи чистого кода создать нечто вроде текстового окна с кнопкой ОК/Закрыть и залить в это окно или некий графический объект все данные из Datasource (или Dataset) - чтобы наконец таки проверить все значения...
Подскажите, пожалуйста, тк создавать объекты и формы из пустоты ещё не приходилось...
delphicoding вне форума
Старый 29.07.2011, 13:36   #12
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

1. создаете новую (еще одну) форму удовлетворяющую ВАШИМ требованиям. (кнопки таблицы, отображения, и т.п.)
Цитата:
создать нечто вроде текстового окна с кнопкой ОК/Закрыть и залить в это окно или некий графический объект все данные из Datasource (или Dataset)
2. в нужном месте кода делаете ( не забыв сделать uses unitformxxxx )
Код:
//создаете новый объект форму указанно типа
F:=TformXXX.Create(self); 
// заполняете ее данными
f.Grid.DataSource:=self.myDataSource;
f.StaticText.caption:=myDaatSource.DataSet.SQL.Text;
и другие действия
// показываете с приостановкой дальнейших действий.
f.ShowModal; 
// уничтожаете более не нужный вам объект
f.Free;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.07.2011 в 13:39.
evg_m вне форума
Старый 29.07.2011, 13:44   #13
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Да, тоже вариант, просто хотелось поэлегантнее, без лишних юнитов в проекте. Но наверно так правильнее.

Только вот эта строка не работает, тк у Dataset (FIBDataset) нет параметра SQL.
f.StaticText:=myDaatSource.DataSet. SQL.Text;

Спасибо!

Последний раз редактировалось delphicoding; 29.07.2011 в 13:54.
delphicoding вне форума
Старый 29.07.2011, 14:12   #14
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

можно и без лишних unit если не лень громоздить кучу кода
и многое знать про компоненты чтобы не забыть про какое-нибудь свойство.
Код:
f:=TForm.Create(self);
s:=Tstatictext.Create(f);
s.align:=altop;
s.parent.f;
d:=TDBgrid.Crate(f);
d.align:=alclient;
d.parent:=f;
остальное смотри выше.

Ах да мы еще забыли про кнопку.
Код:
b:=Tbutton.Create(f);
b.aligт:= а вот нет такого.
b.top:=????
b.left:=????
и думаем почему ее все равно не видно.

вспомнили
b.parent:=f;
а ее все равно не видно.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 29.07.2011 в 14:19.
evg_m вне форума
Старый 29.07.2011, 14:35   #15
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Ты прикольный :D

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

Ещё раз за краткий, чёткий, полезный ответ - спасибо!
delphicoding вне форума
Старый 29.07.2011, 15:28   #16
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

После долгих ковыряний выяснилось, что в программе всё нормально. Баг либо в процедуре БД, либо при передаче параметров из программы в процедуру БД. Процедура явно работает, тк возвращает названия полей таблицы, но результат работы - пуст.
Пользуюсь IBExpert, можно в нём как-то посмотреть запросы/ответы к/из процедурам БД из рабочей программы? Как вообще можно узнать какие точно данные получила БД?

=====================

Попутно напишу как выглядит запрос в БД, может будут корректировки:
Код:
procedure TfZapros.Zapros(ProcedureName,ProcedureList:string);
begin
  With dsZapros do begin
    close;
    SQLs.SelectSQL.Text:='SELECT * FROM '+ProcedureName+' (:LIST)';
    Params[0].Value:=ProcedureList;
    open;
end;
Код в БД по разделению списка выглядит так:
Код:
begin
  while (i <= char_length(lst)) do begin
    if (substring(lst from i for 1) = ',') then begin
      if (i > j) then
          id = trim(leading from substring(lst from j for i - j));
      else
        id = null;
      if (id is not null) then suspend;
      j = i+1;
    end
    i = i+1;
  end
  if (i > j) then
      id = trim(leading from substring(lst from j for i - j));
  else
    id = null;
  if (id is not null) then suspend;
end
Приводить саму процедуру выборки не буду, тк в ней без таблиц и понимания программы разобраться невозможно.

Последний раз редактировалось delphicoding; 29.07.2011 в 16:09.
delphicoding вне форума
Старый 30.07.2011, 10:47   #17
delphicoding
Заблокирован
 
Регистрация: 04.07.2011
Сообщений: 261
По умолчанию

Решено. Можно закрывать.
delphicoding вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли заставить рассматривать некую строку текста kaljan775 Общие вопросы C/C++ 4 14.01.2011 05:17
Как заставить Delphi игнорировать регистр? Akronis Общие вопросы Delphi 2 20.11.2009 23:30
Указать на ошибку valerij Microsoft Office Excel 15 26.10.2008 13:31
Как заставить Delphi 2005 проигрывать сжатые DivX'ом AVI-файлы??? Valdis Компоненты Delphi 5 16.09.2007 23:25
Как заставить Delphi 2005 проигрывать сжатые DivX'ом AVI-файлы? Valdis Общие вопросы Delphi 1 08.09.2007 19:20