Topic: Кнопка копирование
Можно ли создать кнопку Копировать строчку?
My Visual Database → Russian → Кнопка копирование
Можно ли создать кнопку Копировать строчку?
Имеете ввиду сделать дубликат записи?
Посмотрите пожалуйста данный пример
http://myvisualdatabase.com/forum/misc. … download=1
Также в примере есть возможность открыть запись, а затем сохранить ее как новую.
Form1.GridEmployees.dbItemID := Last_Insert_id('employees'); // select new record in TableGrid
Too many actual parameters
Hello Scopus,
Возможно, попробуйте это так
Form1.GridEmployees.dbitemid := last_insert_id; // select new record in TableGrid
Regards,
Derek.
Больше спасибо работает
Можно тоже самое для MySQL сделать? SQLExecute ругается на не соответствие БД
Можно тоже самое для MySQL сделать? SQLExecute ругается на не соответствие БД
Данный пример должен работать и для MySQL.
Пожалуйста приложите ваш проект либо опишите подробней ошибку.
//Кнопка дублирование
procedure Form1_Dubl_OnClick (Sender: string; var Cancel: boolean);
begin
if Form1.TableGrid1.dbItemID<>-1 then
begin
SQLExecute ('INSERT INTO lvs (Address, MACAddress, ComputerName, Users, SerialNumber, DateScan, IP_NetUntMACPrt, Name_NetUntMACPrt, Port_NetUntMACPrt, ID ОИКТ, Цех, Склад, Здание, Этаж, Отметка, Помещение, ФИО ответственного) SELECT Address, MACAddress, ComputerName, Users, SerialNumber, DateScan, IP_NetUntMACPrt, Name_NetUntMACPrt, Port_NetUntMACPrt, ID ОИКТ, Цех, Склад, Здание, Этаж, Отметка, Помещение, ФИО ответственного FROM lvs WHERE id='+Form1.TableGrid1.sqlValue );
Form1.TableGrid1.dbUpdate; // Update TableGrid
Form1.TableGrid1.dbitemid := last_insert_id; // select new record in TableGrid
end;
end;
проект
В данном случае имена полей в SQL запросе нужно брать в кавычки, пример
`ФИО ответственного`
Для создания дубликата записи используйте лучше пример, который я привел выше
http://myvisualdatabase.com/forum/misc. … download=1
В данном случае имена полей в SQL запросе нужно брать в кавычки, пример
`ФИО ответственного`
Для создания дубликата записи используйте лучше пример, который я привел выше
http://myvisualdatabase.com/forum/misc. … download=1
В вашем примере выдает ошибку
должно быть просто last_insert_id(), без всяких переменных внутри скобочек. база данных вернет id записи, последней внесенной в БД в принципе, и не важно, в какую таблицу.
В данном сообщении можете найти информацию, как исправить это
http://myvisualdatabase.com/forum/viewt … 831#p25831
Добрый день! Никак не получается добавить кнопку копировать. Выдает ошибку. Можете помочь на примере какого нибудь справочника? Спасибо.
В старых версиях у компонентов нет свойства sqlValue, поэтому вместо
Form1.GridEmployees.sqlValue
пишите
IntToStr(Form1.GridEmployees.dbItemID)
А там и нет Form1.GridEmployees.sqlValue
Там вот так
procedure frmEmployee_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
frmEmployee.bSave.dbGeneralTableId:=-1;
frmEmployee.bSave.Click;
end;
procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
begin
if IntToStr(Form1.GridEmployees.dbItemID)<>-1 then
begin
SQLExecute ('INSERT INTO employees (lastname, firstname, dateofbirth) SELECT lastname, firstname, dateofbirth FROM employees WHERE id='+Form1.GridEmployees.sqlValue );
Form1.GridEmployees.dbUpdate; // Update TableGrid
IntToStr(Form1.GridEmployees.dbItemID):= last_insert_id(); // select new record in TableGrid
end;
end;
begin
end.
есть, в этой строке
employees WHERE id='+Form1.GridEmployees.sqlValue );
Все равно выдает ошибку.... Что то я не так делаю походу....
procedure frmEmployee_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
frmEmployee.bSave.dbGeneralTableId:=-1;
frmEmployee.bSave.Click;
end;
procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
begin
if IntToStr(Form1.GridEmployees.dbItemID)<>-1 then
begin
SQLExecute ('INSERT INTO employees (lastname, firstname, dateofbirth) SELECT lastname, firstname, dateofbirth FROM employees WHERE id='+IntToStr(Form1.GridEmployees.dbItemID));
Form1.GridEmployees.dbUpdate; // Update TableGrid
IntToStr(Form1.GridEmployees.dbItemID):= last_insert_id(); // select new record in TableGrid
end;
end;
begin
end.
Пожалуйста описывайте подробно, какую ошибку выдает? Также приложите ваш проект.
Это прикрепленный Ваш проект свыше. Ошибку прикрепляю
Проверил, данный скрипт работает без ошибок
procedure frmEmployee_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
frmEmployee.bSave.dbGeneralTableId:=-1;
frmEmployee.bSave.Click;
end;
procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
begin
if Form1.GridEmployees.dbItemID<>-1 then
begin
SQLExecute ('INSERT INTO employees (lastname, firstname, dateofbirth) SELECT lastname, firstname, dateofbirth FROM employees WHERE id='+IntToStr(Form1.GridEmployees.dbItemID) );
Form1.GridEmployees.dbUpdate; // Update TableGrid
Form1.GridEmployees.dbItemID := Last_Insert_id('employees'); // select new record in TableGrid
end;
end;
При запуске выдает вот это. У меня версия 1,45
в конце скрипта всегда должен быть блок
begin
end.
т.е. полностью дожно быть так
procedure frmEmployee_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
frmEmployee.bSave.dbGeneralTableId:=-1;
frmEmployee.bSave.Click;
end;
procedure Form1_Button6_OnClick (Sender: string; var Cancel: boolean);
begin
if Form1.GridEmployees.dbItemID<>-1 then
begin
SQLExecute ('INSERT INTO employees (lastname, firstname, dateofbirth) SELECT lastname, firstname, dateofbirth FROM employees WHERE id='+IntToStr(Form1.GridEmployees.dbItemID) );
Form1.GridEmployees.dbUpdate; // Update TableGrid
Form1.GridEmployees.dbItemID := Last_Insert_id('employees'); // select new record in TableGrid
end;
end;
begin
end.
Да, все работает! Спасибо!
My Visual Database → Russian → Кнопка копирование
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi