memult
К сожалению решения для данной задачи не подскажу, т.к. для ее решения необходимо слишком много времени, что выходит за рамки поддержки.

4,852

(4 replies, posted in Russian)

Скриптом в принципе это возможно сделать, RSS файл это просто текстовый XML документ, который вы можете формировать самостоятельно, необходимо лишь ознакомиться с его форматом и правилами.

4,853

(2 replies, posted in Script)

Hello,


In this way you can filter no need symbols

procedure Form1_Edit1_OnKeyPress (Sender: string; var Key: Char);
begin
   If not ((Key in ['a'..'z']) or (Key in ['0'..'9']))  then Key:=#0;
end;

To check length:

procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
    if (Length(Form1.Edit1.Text) < 8) or (Length(Form1.Edit1.Text) > 256) then
    begin
        ShowMessage('Text should be between 8 and 256 character');
    end;
end;

4,854

(11 replies, posted in General)

SWGAK
I think you have some script in the bottom section between begin end. which use SQL queries, just move this script to event OnShow of main form.


In ver 2.5 and later don't allows using sql queries in the begin end. section.

4,855

(16 replies, posted in SQL queries)

lhimes wrote:

i get the same error

lee

Please check it:
form1.edit22.Value := sqlexecute('select IFNULL(wksplayed, 0) from matches where id_teams = ' + Form1.ComboBox1.sqlValue)+1;

4,856

(18 replies, posted in Russian)

Роман wrote:

Доброго времени суток!
Спортивный интерес...
HTML Document (.htm) импортировать другим способом можно???,
кроме  SQLiteStudio,а главное не преобразуя его в  CSV формат, т.е сразу напрямую..
кликнули на HTML Document (.htm) и он уже в базе MVD???

Можно получить текст html страницы с помощью функции s := HTTPGet('url страницы'); затем с помощью строковых функций находить и извлекать необходимые данные, которые можно вставить в базу с помощью SQL запроса.

6katran6 wrote:

так он не работает sad

Скачайте пожалуйста исправленный проект

Приложите пожалуйста ваш проект, с описанием действий приводящих к ошибке.

4,859

(11 replies, posted in General)

SWGAK wrote:

Hello Dmitry

How do you force a TWebBrowser refresh?

I can't seem to get the TWebBrowser.refresh and TWebBrowser.Refresh2 (overloaded) methods to work since FastScript doesn't support the type OleVariant.

Could you please post some example code for this?

Thank you

MAK

Hello,


Please download latest beta version 2.6
https://www.dropbox.com/s/pebrvqwqcbluy … a.zip?dl=0


I have added methods Refresh and Refresh2

4,860

(66 replies, posted in Russian)

Для компонента edDate измените формат ввода (свойство EditMask) на 00.00.0000 00:00;0;_


исправленный скрипт:

procedure frmEmployee_edDate_OnChange (Sender: string);
var
    s: string;
    YY, MM, DD: string;
    HH, MIN: string;
    dt: TDateTime;
begin              
    s := frmEmployee.edDate.Text;
    if Length(s)=12 then
    begin
        DD := Copy(s, 1, 2);
        MM := Copy(s, 3, 2);
        YY := Copy(s, 5, 4);

        HH := Copy(s, 9, 2);
        MIN := Copy(s, 11, 2);

        try
            dt := Trunc(EncodeDate( StrToInt(YY),StrToInt(MM),StrToInt(DD) )) + Frac(EncodeTime( StrToInt(HH),StrToInt(MIN),0, 0 ));
            frmEmployee.DateTimePicker1.DateTime := Frac(dt);
            frmEmployee.dtDateOfBirth.DateTime := Trunc(dt);
            frmEmployee.edDate.Color := clWhite;
        except
            frmEmployee.DateTimePicker1.Checked := False;
            frmEmployee.dtDateOfBirth.Checked := False;
            frmEmployee.edDate.Color := clRed;

        end;
    end else
    begin
        frmEmployee.DateTimePicker1.Checked := False;
        frmEmployee.dtDateOfBirth.Checked := False;
        frmEmployee.edDate.Color := clWhite;
    end;
end;

Приветствую,


Попробуйте в скрипте эту строку

max:= StrToFloat(PokazAgregat.TableGrid3.Cells[1, 0]);

заменить на

max := 0;


убрать легенду можно так

TLineSeries(ChartLine.Series[0]).ShowInLegend := False;

4,862

(23 replies, posted in Russian)

Роман
1. Это групирует результат функции TOTAL по уникальным полям перечисленные в GROUP BY


2.
попробуйте так

SELECT
BBB.bbb,
strftime('%d.%m.%Y',AAA.data),
TOTAL(profit)
FROM AAA

LEFT OUTER JOIN BBB ON BBB.id=AAA.id_BBB

WHERE
(CASE WHEN {ComboBox3}=-1 THEN 1=1 ELSE AAA.id_BBB={ComboBox3} END)
GROUP BY AAA.data, AAA.id_BBB

4,863

(7 replies, posted in Script)

v_pozidis

Form1.Edit1.Value:= SQLExecute('SELECT (SELECT TOTAL(sallery) FROM MoneyA WHERE id_Customer='+Form1.TableGrid1.sqlValue+' ) + (SELECT TOTAL(sallery) FROM MoneyB WHERE id_Customer='+Form1.TableGrid1.sqlValue+')');

4,864

(16 replies, posted in SQL queries)

lhimes wrote:

i want to take the value in wksplayed, add 1 to it and save it back to wksplayed using form1.edit22

thanks for the response

lee

Please try to replace this line

   form1.edit22.Value := sqlexecute('select wksplayed from matches where id_teams = (select id from teams)')+1;

to

   form1.edit22.Value := sqlexecute('select wksplayed from matches where id_teams = ' + Form1.ComboBox1.sqlValue)+1;

4,865

(89 replies, posted in Russian)

RZ-007 wrote:

Здравствуйте!!!
Дмитрий Вас не было чуток дней....для нас как вечность...
Взгляните ПОСТ №35 ПОЖАЛУЙСТА???

попробуйте такой запрос

s := SQLExecute('SELECT count(id) FROM AAA WHERE (id_BBB = ' + Form3.ComboBox1.sqlValue + ') AND (date(data) =date( ' + Form3.DateTimePicker1.sqlDate + '));');

Ваш скрипт в принципе верен, просто присутствуют несколько синтаксических ошибок в структуре скрипта, должно быть так

procedure addTC_mark_onChange (Sender: string; ACol, ARow: Integer);
begin
    addTC.fool.Text:=addTC.mark.Text + ' -  ' + addTC.nomer.Text;
end;

procedure addTC_nomer_onChange (Sender: string; ACol, ARow: Integer);
begin
    addTC.fool.Text:=addTC.mark.Text + ' -  ' + addTC.nomer.Text;
end;

begin

end.

4,867

(23 replies, posted in Russian)

Роман
попробуйте так

SELECT 
TOTAL(profit),
strftime('%d.%m.%Y',AAA.data),

FROM AAA

WHERE
(CASE WHEN {ComboBox3}=-1 THEN 1=1 ELSE AAA.id_BBB={ComboBox3} END)

GROUP BY AAA.data, AAA.id_BBB

4,868

(16 replies, posted in SQL queries)

lhimes wrote:

ok, so maybe that one was too tough. i have simplified my project and attached it. i have the same problem in line 5 of the script. i am trying to add 1 each time the team plays. the sql command seems to work in sqlite studio but when i run it here i get "could not convert variant of type (UniCodeString) into type (double)".  any help would be appreciated.

lee

This query is not correct:

form1.edit22.Value := sqlexecute('select wksplayed from matches where id_teams = (select id from teams)')+1; 

What exactly you want to do using this query?

4,869

(2 replies, posted in General)

Hello,


Please attach your project, and let me know steps to raise error message about "the table has no column"


Thanks.

4,870

(36 replies, posted in General)

sonixax wrote:

Thanks a lot Dear Dimitri smile

Have another Question tongue

How can I compare to dates ?

for example I want to know how many days before my record saved!
or something like it :

if (RecordDate > 7) !

Thanks a lot smile

Where you need to show result? If you need to show result in TableGrid, you should use calculated field like this

julianday('now') - julianday(RecordDate)

memult

Если мне нужно еще поставить условие WHERE,куда его ставить тут?

WHERE необходимо поставить как в основной запрос, так и в подзапрос.

SELECT date, status
(SELECT COUNT(*) FROM line_data ln WHERE ln.date <= line_data.date AND Status=1) as incCount 
FROM line_data WHERE Status=1
GROUP BY date

И наверно основой вопрос, для чего и делался этот запрос

в таком случае вам необходимо реализовать логгирование создание, редактирование и удаление записей, чтобы например в базе оставалась информация, когда запись была удалена либо был сменен ее статус. В данной теме можете найти пример логгирование записей
http://myvisualdatabase.com/forum/viewtopic.php?id=702

4,872

(12 replies, posted in General)

Hello,


Please attach your demo project and screenshot, how to should look the report.

memult wrote:

А не подскажете, что значит выделенные символы в запросе?(ln и ln.date) Таблица для запроса это line_data.
И какое в этом случае подставлять значение в строку ProfitValue := Results.FieldByName('count(*)').asString; Вместо count(*) ?

ln это псевдоним таблицы line_data, это необходимо, чтобы можно было построить данное условие

ln.date <= line_data.date

чтобы различать таблицу основного запроса и таблицу в подзапросе, иначе мы просто будем сравнивать одни и теже данные, что не имеет смысла.


ProfitValue := Results.FieldByName('incCount').asString;

memult
Называется нарастающий итог, тогда запрос будет таким

SELECT date, 
(SELECT COUNT(*) FROM line_data ln WHERE ln.date <= line_data.date) as incCount 
FROM line_data 
GROUP BY date 
ORDER BY date DESC

memult
С данным запросом кривая не будет идти все время вверх. Запрос вернет данные следующего вида

01.05.2016 - 5 записей
02.05.2016 - 4 записей
03.05.2016 - 0 записей
04.05.2016 - 3 записей
05.05.2016 - 8 записей