Leonid
замените ее на эту функцию
DATE_FORMAT(spKalendRab.MesGod, '%m.%Y')
as [Ф.И.О.] замените на as "Ф.И.О."
My Visual Database → Posts by DriveSoft
Leonid
замените ее на эту функцию
DATE_FORMAT(spKalendRab.MesGod, '%m.%Y')
as [Ф.И.О.] замените на as "Ф.И.О."
на сколько мне известно, команда FINDSTR умеет искать только в текстовых файлах.
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
И на том спасибо!!! Кстати, может Вы кнопку "Поддержать проект" прикрепите на форум, кто сколько захочет пришлет)
Думаю в этом нет необходимости, т.к. проект коммерческий )
Можно, у компонента TextBox есть свойство Increm.Search, в котором вы указываете имя кнопки с действием Поиск, т.о. каждый раз при изменении текста в TextBox нажимается кнопка поиска и производится моментальный поиск по мере набора текста.
Также у компонента TextBox необходимо установить свойство Filter = %s%
чтобы поиск производился и по части слова, а не только целиком.
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;
пример, если файл сохраняется непосредственно в базе
var
sFile: string
begin
sFile := SaveFileFromDataBase('tablename', 'fieldname', 4); // файл сохраняется во временную папку Windows, функция возвращает полный путь файла в этой папке
CopyFile(sFile, ExtractFilePath(Application.Exename)+'file\'+ExtractFileName(sFile)); // копируем файл из временной папки в необходимую
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
так же мне непонятно поведение 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;
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
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 определяется вручную, какая кнопка будет нажата для редактирования записи.
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;
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.
Try this:
printf('%.2lf', fieldname)
Спасибо.
Компонент DateTimePicker в принципе не может изменять одновременно дату и время, к сожалению не могу повлиять на это, так уж решили разработчики Delphi. Поэтому для ввода одновременно даты и времени (для поля типа DateTime) используется два компонента, подробней можно прочитать здесь
http://myvisualdatabase.com/help_ru/com … icker.html (Подробней о свойстве "Calendar")
reberkurdi80
This error not related with MySQL.
Please send me your project to support@drive-software.com
and describe steps for raise this error.
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.
Milla.Makova
Это можно сделать с помощью вычисляемого поля такого вида
strftime('%m.%Y', datefield)
Что конкретно необходимо для коммерческого распространения?
Здесь можете скачать пример, как сделать демо версию
http://myvisualdatabase.com/forum/viewtopic.php?id=1094
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
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);
My Visual Database → Posts by DriveSoft
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi