Skip to forum content
My Visual Database
A Simple Solution for Creating Databases
You are not logged in. Please login or register.
Active topics Unanswered topics
Search options (Page 157 of 400)
Topics by DriveSoft User defined search
Posts found: 3,901 to 3,925 of 9,999
К сожалению я близко не знаком с регулярными выражениями, попробуйте так
протестировать ваше регулярное выражение можно здесь
http://www.rubular.com/
также рекомендую прочитать введение в регулярные выражения
https://habrahabr.ru/post/115825/
http://www.codenet.ru/webmast/php/regexps.php
Расположите на форме Memo1 и Memo2, в Memo1 напишите
привет
привет
здравствуйте
в Memo2 будут строки без повторов
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
i,c: integer;
sl: TStringList;
begin
sl := TStringList.Create;
c := Form1.Memo1.Lines.Count-1;
for i := 0 to c do
begin
if sl.IndexOf(Form1.Memo1.Lines[i]) = -1 then
sl.Add(Form1.Memo1.Lines[i]);
end;
Form1.Memo2.Lines := sl;
sl.free;
end;
Приветствую.
Здесь можно найти проект с примером, с реализацией тестового периода и кода активации
http://myvisualdatabase.com/forum/viewtopic.php?id=1434
К сожалению версия 1.44 не умеет работать с системным реестром, поэтому данный проект не заработает в старой версии.
Приложите пожалуйста ваш проект (zip файл без exe и dll), возможно смогу придумать что нибудь другое.
Забыл что необходимо также текстовые данные взять в апострофы
UPDATE doctor
SET doctor.firstname='{edDoctorFName}',
doctor.lastname='{edDoctorLName}',
doctor.phone='{edDoctorPhone}',
doctor.mail='{edDoctorMail}',
doctor.id_hospital={cbDoctorHospital},
doctor.id_ratingdoctor={cbDoctorRating},
doctor.id_specialtydoctor={cbDoctorSpecialty}
WHERE doctor.id={tgDoctor}
There is no way to use method
Form1.DBImage1.LoadFromDatabase
if you database table not have primary key called "id"
RZ-007
SQL запросы для нахождения минимума и максимума
SELEC MAX(dates) FROM tablename
SELEC MIN(dates) FROM tablename
найти время затраченное на какое либо действие в скрипте можно так
procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);
var
Start: double;
begin
start := GetTickCount;
// ваш код
Form1.Label1.Caption := FormatDateTime('hh:mm:ss', ((GetTickCount-start) div 1000) / 86400 );
end;
Дубликаты всегда располагаются на соседних строчках? Или могут быть и так ?
привет
здравствуйте
привет
Form1.GridEmployees.Columns[i].VerticalAlignment := taAlignTop;
вместо taAlignTop доступны также значения
taAlignBottom - нижнее вертикальное выравнивание
taVerticalCenter - центральное выравнивание
попробуйте так
RegExp := TRegExp.Create('http://(.*?)</h');
procedure Form1_GridEmployees_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
Form1.DBImage1.Clear;
Form1.DBImage1.LoadFromDatabase('employees', 'photo', Form1.GridEmployees.dbItemID);
end;
begin
end.
Project with example
http://myvisualdatabase.com/forum/misc. … download=1
Пожалуйста опишите шаги, которые приводят к ошибке.
Также у меня нет доступа к вашей базе, поэтому необходимо описание, с учетом того, что в моей базе нет данных.
Hello.
Please attach your project and describe steps to repeat this error.
AD1408 wrote:Hi Dmitry,
Thank you so much.........
The above provides the solution I was looking for.
One thing is missing tho... When overwriting on existing saved file there is no warning dialog such as "Are you sure you want to overwrite xyz.file"
(I thought windows would provide the warning dialog but it doesn't)
Just add this line
SaveDialog.Options := ofOverwritePrompt+ofHideReadOnly+ofEnableSizing;
after
SaveDialog.Filter := 'Database|*.db|Any file|*.*';
После этой строчки
doctor.id_specialtydoctor={cbDoctorSpecialty}
не должно быть запятой
комментарии
var
isChanged: boolean; // необходимо, чтобы знать если пользователь открывал ComboBox
procedure frmEmployee_cbFavoriteFood_OnCloseUp (Sender: string);
begin
isChanged := True; // запоминаем, если пользователь открывал ComboBox
end;
procedure frmEmployee_OnShow (Sender: string; Action: string);
var
idEmp: string;
idFood: integer;
Results: TDataSet;
i,c: integer;
begin
isChanged := False;
frmEmployee.cbFavoriteFood.SetAllCheckBoxes(false);
if Action='ShowRecord' then // если окно появилось для показа существующей записи
begin
idEmp := IntToStr(frmEmployee.bSave.dbGeneralTableID); // запоминаем id редактируемой записи
SQLQuery('SELECT id_food FROM FavoriteFood WHERE id_employees='+idEmp, Results); // sql запрос для получения значений поля id_food для редактируемой записи, в этих значениях сохранены выбранные пункты в ComboBox
while not Results.Eof do // читаем результат sql запрос
begin
idFood := Results.FieldByName('id_food').asInteger; // id еды, которую необходимо отметить в ComboBox
c := frmEmployee.cbFavoriteFood.Items.Count-1;
for i := 1 to c do // цикл перебора значений в ComboBox для нахождения и отметки необходимого пункта
begin
if frmEmployee.cbFavoriteFood.dbIndexToID(i) = idFood then
frmEmployee.cbFavoriteFood.ItemsChecked[i] := True;
end;
Results.Next; // переход к следующей записи результата sql запроса
end;
end;
end;
procedure frmEmployee_bSave_OnAfterClick (Sender: string);
var
i,c: integer;
idFood: string;
idEmp: string;
begin
if isChanged then // если пользователь открывал ComboBox, значит он там возможно что то изменил
begin
idEmp := IntToStr(frmEmployee.bSave.dbGeneralTableID); // запоминаем id редактируемой записи
SQLExecute('DELETE FROM FavoriteFood WHERE id_employees='+idEmp); // удаляем записи о выбранных значениях в ComboBox
c := frmEmployee.cbFavoriteFood.Items.Count-1;
for i := 1 to c do // цикл перебора пунктов в ComboBox
begin
if frmEmployee.cbFavoriteFood.ItemsChecked[i] then // если пункт в ComboBox выбран, то создаем об этом запись в БД
begin
idFood := IntToStr(frmEmployee.cbFavoriteFood.dbIndexToID(i));
SQLExecute('INSERT INTO FavoriteFood (id_employees, id_food) VALUES('+idEmp+','+idFood+')');
end;
end;
end;
end;
чтобы сообщение не выскакивало, найдите в коде и удалите строку ShowMessage
просто забыл сам удалить
Не получиться реализовать подобную сортировку без создания дополнительных полей.
Версия 2.8
http://myvisualdatabase.com/download/myvisualdb2.8.exe
Добавил в проект сортировку по возрастанию и убыванию.
Check it out
procedure MenuClick1 (Sender: string);
var
SaveDialog: TSaveDialog;
sFileName: string;
begin
sFileName := FormatDateTime('dd-mm-yyyy hh-nn-ss', now)+'.db';
SaveDialog := TSaveDialog.Create(Form1);
SaveDialog.FileName := sFileName;
SaveDialog.Filter := 'Database|*.db|Any file|*.*';
if SaveDialog.Execute then
begin
CopyFile(ExtractFilePath(Application.ExeName)+'sqlite.db', SaveDialog.FileName);
end;
SaveDialog.Free;
end;
beniamin91
Поля должны разделяться запятыми, вместо точки с запятой
Сделал для вас пример, сохранение значений выбранных в ComboBox
Если подойдет, подумаем и над связанными списками )
Чтобы найти ошибку, мне необходим проект и доступ к БД, если есть такая возможность, отправьте проект и данные на support@drive-software.com со ссылкой на данную тему.
Также могу посоветовать проверить тип данного поля с помощью инструмента MySQL Workbench, данное поле должно быть типа Integer
вместо строчки скрипта
frmEmployee.edYear.Text := FormatDateTime('yyyy', now);
замените на, чтобы указывать число в ручную
frmEmployee.edYear.Text := '15';
также в данном примере реализована сортировка.
Приветствую.
Судя по вашим данным, вам необходимо чтобы счетчик сбрасывался при изменении второй части значения (15,16)
Это не получиться реализовать с помощью поля СЧЕТЧИК
Скачайте пожалуйста другой пример, в нем счетчик сбрасывается на 1, когда меняется текущий год:
Попробуйте так
Form1.cbDoctorSpecialty.dbItemID := SQLExecute('Select id_specialtydoctor from doctor where id='+Form1.tgDoctor.sqlValue);
Posts found: 3,901 to 3,925 of 9,999