Leonid
замените ее на эту функцию

DATE_FORMAT(spKalendRab.MesGod, '%m.%Y')

as [Ф.И.О.] замените на as "Ф.И.О."

6,452

(5 replies, posted in Russian)

на сколько мне известно, команда FINDSTR умеет искать только в текстовых файлах.

6,453

(8 replies, posted in Script)

You can fill the component the resulting of any SQL query.


Example:

 Form1.ComboBox1.dbSQLExecute ('SELECT fieldname, id FROM tablename');

Note that in SQL query is a field "id", the component could know what records in the database belongs to the selected item.
Allowed SQL query and without the presence of the field "id", but in this case it would be impossible to know what the record ID has selected in ComboBox using property Form1.ComboBox1.dbItemID



Another way:
Also you can populate ComboBox without foreign key, just type name of table in property ForeignKey

yanikmi wrote:

И на том спасибо!!! Кстати, может Вы кнопку "Поддержать проект" прикрепите на форум, кто сколько захочет пришлет)

Думаю в этом нет необходимости, т.к. проект коммерческий )

Можно, у компонента TextBox есть свойство Increm.Search, в котором вы указываете имя кнопки с действием Поиск, т.о. каждый раз при изменении текста в TextBox нажимается кнопка поиска и производится моментальный поиск по мере набора текста.


Также у компонента TextBox необходимо установить свойство Filter = %s%
чтобы поиск производился и по части слова, а не только целиком.

6,456

(3 replies, posted in Script)

You can use system registry for save and restore text, example:

CONST
   APP_NAME = 'MyAppName'; //your unique application name, used as an identifier, to store information in the system registry
   
   
procedure Form1_OnShow (Sender: string; Action: string);
begin
    if LoadText<>'' then Form1.Label1.Caption := LoadText;
end;

procedure Form1_OnClose (Sender: string; Action: string);
begin
     SaveText(Form1.Label1.Caption);
end;   
   

procedure SaveText (s: string);
var
   reg: TRegistry;
begin
     reg := TRegistry.Create;
     reg.Access := KEY_ALL_ACCESS;
     reg.RootKey := HKEY_CURRENT_USER;

     if reg.OpenKey('software\' + APP_NAME, true) then
     begin
          Reg.WriteString('LabelText', s);
          reg.CloseKey;
     end;

     reg.Free;
end;


function LoadText: string;
var
   reg: TRegistry;
begin
     result := '';
     reg := TRegistry.Create;
     reg.Access := KEY_ALL_ACCESS;
     reg.RootKey := HKEY_CURRENT_USER;

     if reg.OpenKey('software\' + APP_NAME, true) then
     begin
          if reg.ValueExists('LabelText') then Result := Reg.ReadString('LabelText');
          reg.CloseKey;
     end;

     reg.Free;
end;

6,457

(3 replies, posted in Russian)

пример, если файл сохраняется непосредственно в базе

var
   sFile: string
begin
    sFile := SaveFileFromDataBase('tablename', 'fieldname', 4); // файл сохраняется во временную папку Windows, функция возвращает полный путь файла в этой папке
    CopyFile(sFile, ExtractFilePath(Application.Exename)+'file\'+ExtractFileName(sFile)); // копируем файл из временной папки в необходимую 

6,458

(6 replies, posted in General)

davidsmyth wrote:

How can I add the decimal places to a "sum" in the footer?

You can do it using script, example:

procedure Form1_TableGrid1_OnChange (Sender: string);
begin
    Form1.TableGrid1.Columns[3].Footer.Caption := FormatFloat('0.00', Form1.TableGrid1.Columns[3].Footer.FormulaValue)
end;

also you can download project with example

6,459

(8 replies, posted in Russian)

iacovlogica wrote:

так же мне непонятно поведение SQLExecute
.Text := SQLExecute( 'SELECT data FROM sd WHERE id=10' );    Работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE id>10' );    Не работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE ORDER BY id' );   Не работает
по всей видимости запрос может передать только одно поле из базы данных

Да, SQLExecute предназначена для получения только одной записи из поля.



вот так можно вернуть множественный результат

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);  
var
    Results: TDataSet;
begin
    SQLQuery('SELECT name, sort FROM person', Results);
    while not Results.Eof do
    begin
        Form1.Memo1.Lines.Add( Results.FieldByName('name').AsString;
        Form1.Memo1.Lines.Add( Results.FieldByName('sort').AsString;
        Results.Next;
    end;
    Results.Free;
end;

6,460

(6 replies, posted in General)

It's not problem that you deleted .vdb file, the file have not any important information, you can just copy any .vdb file to right side.
Thus you can open your project on right side again and do again yor small changes.

Здравствуйте,


Вам необходим самый обычный поиск, пожалуйста посмотрите видео уроки расположенные на этой странице
http://drive-software.com/myvisualdatabase_ru.html


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

6,462

(6 replies, posted in General)

heribertom6466
What do you mean?
When you change database structure you will not lose data.
Just add the table in your old database.

Leonid
Перенести данные пока можно только сторонними программами, в будущем думаю автоматизирую этот процесс.


По поводу кодировки, скачайте последнюю версию 2.02, в ней я исправил ошибку связанную с кодировкой, только необходимо пересоздать базу данных MySQL.

Сделал для вас пример.
В нем блокируется действие компонента TableGrid при двойном клике, которое по умолчанию нажимает на кнопку редактирования и с помощью события OnCellDoubleClick определяется вручную, какая кнопка будет нажата для редактирования записи.

6,465

(6 replies, posted in General)

You can do it using a script, example:

procedure Form1_TableGrid1_OnChange (Sender: string);
begin
     Form1.TableGrid1.Columns[0].Alignment := taRightJustify; // first column
     Form1.TableGrid1.Columns[1].Alignment := taCenter; 
     Form1.TableGrid1.Columns[2].Alignment := taLeftJustify; 
end;

6,466

(1 replies, posted in General)

When you call ShowModal, you code will stopped until the form is closed, example:


Form2.Showmodal;
ShowMessage('Form2 is closed'); // this line will be execute, when Form2 will be closed.



also
The Show function shows the form in a non modal form. This means that you can click on the parent form.

Showmodal shows the form modally, meaning you cannot go to the parent form.

6,467

(6 replies, posted in General)

Try this:

printf('%.2lf', fieldname)

6,468

(8 replies, posted in Russian)

Спасибо.


Компонент DateTimePicker в принципе не может изменять одновременно дату и время, к сожалению не могу повлиять на это, так уж решили разработчики Delphi. Поэтому для ввода одновременно даты и времени (для поля типа DateTime) используется два компонента, подробней можно прочитать здесь
http://myvisualdatabase.com/help_ru/com … icker.html (Подробней о свойстве "Calendar")

6,469

(30 replies, posted in General)

reberkurdi80
This error not related with MySQL.
Please send me your project to support@drive-software.com
and describe steps for raise this error.

6,470

(6 replies, posted in General)

Your OLD database don't have new table Marketplace_Login, because you created this table in NEW database.


You can't just copy old database file to new version of your project with different database structure.

6,471

(22 replies, posted in Russian)

Milla.Makova

Это можно сделать с помощью вычисляемого поля такого вида

strftime('%m.%Y', datefield)

Что конкретно необходимо для коммерческого распространения?


Здесь можете скачать пример, как сделать демо версию
http://myvisualdatabase.com/forum/viewtopic.php?id=1094

6,473

(8 replies, posted in Russian)

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


1. Планирую сделать кнопку, позволяющую все разом развернуть или свернуть процедуры.
2. Пожалуйста, опишите подробней.
3. Операторы подсвечиваются  (например for to do, if then else, begin end и т.д.)
4. Планирую для каждой функции сделать краткое описанием, но в тоже время почти все функции стандартные для Delphi
5. Согласен, необходима доработка.
6. Пожалуйста, опишите подробней.
7. Относительно SQLite, дата должна быть только в двойных кавычках, для MySQL апострофы.


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


спасибо за замечания )

Andrew.Frolov
попробуйте данный запрос:

SELECT
COUNT(main.date) as qty,
master.master

FROM main

LEFT OUTER JOIN master ON master.id=main.id_master

WHERE
(CASE WHEN IFNULL({picker_s},1)=1 then 1=1 else date(main.date) >= date({picker_s}) end)
AND
(CASE WHEN IFNULL({picker_do},1)=1 then 1=1 else date(main.date) <= date({picker_do}) end)

GROUP BY master.master

6,475

(3 replies, posted in Russian)

kunar80
Ошибка здесь, вы пытаетесь раскрасить грид, но в этот момент в нем нет записей,

procedure Form1_OnShow (Sender: string; Action: string);
begin
///// ФОН ЯЧЕЕК ПЕРВОЙ СТРОКИ ("ЗАВАНТАЖЕННЯ") /////////////////
    Form1.TableGrid1.Cell[0,0].Color := clBtnFace;
    Form1.TableGrid1.Cell[1,0].Color := clBtnFace;
    Form1.TableGrid1.Cell[2,0].Color := clBtnFace;
    Form1.TableGrid1.Cell[3,0].Color := clBtnFace;
    Form1.TableGrid1.Cell[4,0].Color := clBtnFace;
    Form1.TableGrid1.Cell[5,0].Color := clBtnFace;
end;

поэтому переместите данный код в событие procedure Form1_TableGrid1_OnChange (Sender: string);