Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi 2

Автор: freedom83
Дата сообщения: 27.11.2006 10:31
sunduk4
результат нулевой.
Автор: sunduk4
Дата сообщения: 27.11.2006 10:33
весь запрос приведи, который пробовал.
Автор: freedom83
Дата сообщения: 27.11.2006 10:39

Код: SELECT Opis.fname, da3.date_ AS d3, da3.val AS v3, da2.date_ AS d2, da2.val AS v2, da1.date_ AS d1, da1.val AS v1, da3.name
FROM ((data AS da3 INNER JOIN data AS da2 ON da3.name=da2.name) INNER JOIN data AS da1 ON da2.name=da1.name) INNER JOIN Opis ON da1.name=Opis.name
WHERE ((((da3.date_) Like '01.11.2006') Or (da3.date_ Is Null)) And (((da2.date_) Like '01.10.2006') Or (da2.date_ Is Null)) And (((da1.date_) Like '01.09.2006') Or (da1.date_ Is Null))) And ((da3.date_ Is Not Null) Or (da2.date_ Is Not Null) Or (da1.date_ Is Not Null));
Автор: xlebopezka
Дата сообщения: 27.11.2006 10:42
Ты лучше приведи структуру таблиц и что в итоге тебе нужно получить.
Автор: freedom83
Дата сообщения: 27.11.2006 10:47
Opis
fname name
Data
date_ name val
(поля name совпадают)

надо получить
fname date_1 val1 date_2 val2 date_3 val3

проблема в том, что если хотя бы одна дата отсутствует то ничего не показывается

Автор: sunduk4
Дата сообщения: 27.11.2006 11:16
select o.fname,
(select d1.date from data d1 where d1.name = o.name and d1.date = '01.01.01') as date_1
(select d2.val from data d2 where d2.name = o.name and d2.date = '01.01.01') as val1
.......
from opis o where exists(select dt.* from data dt where ((((dt.date_) Like '01.11.2006') Or (dt.date_ Is Null)) And (((dt.date_) Like '01.10.2006') Or (dt.date_ Is Null)) And (((dt.date_) Like '01.09.2006') Or (dt.date_ Is Null))) And ((dt.date_ Is Not Null) Or (dt.date_ Is Not Null) Or (dt.date_ Is Not Null)) )

где-то так, но я бы структуру данных изменил, конечно..
Автор: xlebopezka
Дата сообщения: 27.11.2006 11:18
select fname,
    (select date_ from data where data.name=opis.name and date_ like 'str1') as date1,
    (select val from data where data.name=opis.name and date_ like 'str1') as val1,...
    ...
from opis
where opis

Попробуй примерно такое, смысл думаю поймешь
Автор: freedom83
Дата сообщения: 27.11.2006 12:19
sunduk4
xlebopezka
все равно пусто


Добавлено:
Автор: xlebopezka
Дата сообщения: 27.11.2006 13:11
freedom83

если я правильно тебя понял - попрообуй так. у себя проверил - запрос данные возвращает.

select fname,
isnull((select val from data where data.name=opis.name and date_='10.11.2006'),0) as val1,
isnull((select val from data where data.name=opis.name and date_= '11.11.2006'),0) as val2,
isnull((select val from data where data.name=opis.name and date_ ='12.11.2006'),0) as val3
from opis

Автор: freedom83
Дата сообщения: 27.11.2006 13:24
isnull нет такой функции в аксессе
Автор: xlebopezka
Дата сообщения: 27.11.2006 13:53
Значит вот так

select fname,
(select val from data where data.name=opis.name and date_='10.11.2006') as val1,
(select val from data where data.name=opis.name and date_= '11.11.2006') as val2,
(select val from data where data.name=opis.name and date_ ='12.11.2006') as val3
from opis
Автор: freedom83
Дата сообщения: 27.11.2006 14:11
0
Автор: sunduk4
Дата сообщения: 28.11.2006 06:22
freedom83
слушай, у тебя данные то в таблицах есть в принципе?
кодировки полей name в таблицах одинаковые?
и вообще, сделай первичные ключи в таблицах.
Автор: freedom83
Дата сообщения: 28.11.2006 14:32

Код:
AdoQu.SQL.Text:='select max(fname)as Fname1, max(d1) as da1,max(va1) as v1,max(d2) as da2, max(va2) as v2, max(d3) as da3, max(va3) as v3 from';
AdoQu.SQL.Text:=AdoQu.SQL.Text+'(SELECT Opis.Код as OpID, Opis.fname as fname, da1.date_ as d1, da1.val as va1,da2.date_ as d2, da2.val as va2, da3.date_ as d3, da3.val as va3';
AdoQu.SQL.Text:=AdoQu.SQL.Text+'FROM data AS da1,data AS da2,data AS da3, Opis';
AdoQu.SQL.Text:=AdoQu.SQL.Text+'WHERE da1.name=opis.name And ((da1.date_='''+str3+''') xor (da1.date_=''0'')) and da2.name=opis.name And ((da2.date_='''+str2+''') xor (da2.date_=''0''))and da3.name=opis.name And ((da3.date_='''+str1+''') xor (da3.date_=''0'')) Order by opis.Код) where (d1 <> ''0'')or (d2 <> ''0'')or (d3 <> ''0'') Group by OPID Order by OpID';
AdoQu.Open;
Автор: killerbeanjeka
Дата сообщения: 28.11.2006 17:14
Необходимо получить письмо с ящика gmail. Имееться SSL зашита. Подскажите как получить письма. Пробую следующий код:

Цитата:

procedure ReseiveMail(Host: string; Port: integer; User, Password: string);
var
pop: TIdPOP3;
m: TIdMessage;
mc,i: integer;
SSLIO : TIdSSLIOHandlerSocketOpenSSL;
begin
FileName := 'c:\!!!\123\mes.txt';
pop := TIdPOP3.Create(nil);
pop.Host:=Host; pop.Port:=Port;
pop.Username:=User; pop.Password:=Password;
SSLIO := TIdSSLIOHandlerSocketOpenSSL.Create(pop);
SSLIO.SSLOptions.Method := sslvSSLv3;
pop.IOHandler := SSLIO;
try
pop.Connect;
mc:=pop.CheckMessages;
while mc > 0 do
begin
m:=TIdMessage.Create(pop);
pop.Retrieve(mc,m);
for i:=0 to m.MessageParts.Count-1 do
with m.MessageParts do
if items[i].ClassType=TIdAttachment then
with TIdAttachment(items[i]) do
try
if FileExists(FileName) then DeleteFile(FileName);
SaveToFile(FileName);
except
ShowMessage('Не удается сохранить файл');
end;
m.Free; dec(mc);
end;
ShowMessage('Все в порядке');
except
// ShowMessage('Не удалось подключиться к
//серверу');
general.e.Text :=SysErrorMessage(GetLastError);
end;
SSLIO.Free;
pop.Free;
end;


Соединение с сервером не идет. В чем проблема?
Автор: VadimLou
Дата сообщения: 29.11.2006 05:07
killerbeanjeka

Цитата:
Соединение с сервером не идет

может всего лишь порт закрыт файрволом ? Или маскарад ограничен набором портов ...
Автор: killerbeanjeka
Дата сообщения: 29.11.2006 07:51
VadimLou
нет, с этим все в порядке. порт 995 открыт брандмауэром windows, а других файерволов не стоит

забыл написать, функцию вызываю так:

ReseiveMail('pop.gmail.com', 995, 'my.email', '12345');

может проблема с вызовом. Если кто-то получал почту с gmail, подскажите пожалуйста
Автор: Borodatu
Дата сообщения: 29.11.2006 10:29
Господа, в затупе почему не работает -

var
Rectic : TRect;
begin
Rectic.Left:=50;
Rectic.Top:=50;
Rectic.Right:=150;
Rectic.Bottom:=150;
InvalidateRect(PaintBox.Canvas.Handle,@Rectic,true);
end;

вставил сей код по нажатию конопырки например... ну не обновляет PB хоть, ты тресни.
Если кто шарит помогите!!!!!
Автор: FRALX
Дата сообщения: 29.11.2006 11:28
Borodatu
А просто вызов Invalidate у паинтбокса не спасет ?
Автор: Borodatu
Дата сообщения: 29.11.2006 11:41
FRALX
Дело в том что PB у меня большой и мне необходимо обновлять одну определенную одласть... а Invalidate попробовал, тоже НЕОБНОВЛЯЕТ.
Я думаю проблема где то в корне, возможно есть какие-то особенности применения...
Автор: OdesitVadim
Дата сообщения: 29.11.2006 12:03
Borodatu
А ты его в PaintBoxPaint обрабатываеш?
Если ты хочеш обновлять только кусок, то ты должен код написать для обработки
Автор: vserd
Дата сообщения: 29.11.2006 12:41
Borodatu
Application.processmessages пробовал вызывать?
Автор: Borodatu
Дата сообщения: 29.11.2006 12:44
OdesitVadim
Нет в PaintBoxPaint идет обновление всего PB(у меня там твориться сложная отрисовка графиков), так а какая разница на коком событии я хочу обновлять часть PB?

Добавлено:
vserd

Цитата:
Application.processmessages пробовал вызывать?

Уже попробовал... бесполезняк...
Автор: OdesitVadim
Дата сообщения: 29.11.2006 13:38
Borodatu
Насколько я знаю, процедура отрисовки должна сама анализировать что обновлять и перерисовывать нужный кусок
Автор: Borodatu
Дата сообщения: 29.11.2006 13:48
OdesitVadim
Согласен с тобой, но мне надо самому. Например, у меня пусть произошли какие-то измененения на канве, и я не хочу обновлять весь PB, а только его часть...
Автор: OdesitVadim
Дата сообщения: 29.11.2006 14:23
так правильно. Ты задаёш координаты области для перерисовки. Посылаеш сообщение. Срабатывает OnPaint и ты обновляеш, учитывая координаты. Просто проблема в том, что для того, что бы их получить надо самостоятельно обработать сообщение WM_PAINT
Автор: Borodatu
Дата сообщения: 30.11.2006 10:37
OdesitVadim
Скинь экзампл простенький, мы уже в отделе всем стадом сидим и тупеем....
Автор: OdesitVadim
Дата сообщения: 30.11.2006 13:09
http://deadbeef.narod.ru/work/articles/flicker.htm
Автор: andead
Дата сообщения: 30.11.2006 23:28
подскажите по бд: нужно хранить+несложно_изменять тибличную информацию, чего выбрать - ADO или xml? база(ы) будет порядка 3 мегабайт, BDS2006
Автор: oan42
Дата сообщения: 01.12.2006 03:11
andead
Только не XML.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.