Topic: Кнопка копирование

Можно ли создать кнопку Копировать строчку?

Re: Кнопка копирование

Имеете ввиду сделать дубликат записи?
Посмотрите пожалуйста данный пример
http://myvisualdatabase.com/forum/misc. … download=1


Также в примере есть возможность открыть запись, а затем сохранить ее как новую.

Dmitry.

Re: Кнопка копирование

Form1.GridEmployees.dbItemID := Last_Insert_id('employees'); // select new record in TableGrid
Too many actual parameters

4 (edited by derek 2018-07-20 10:57:48)

Re: Кнопка копирование

Hello Scopus,
Возможно, попробуйте это так
Form1.GridEmployees.dbitemid := last_insert_id;  // select new record in TableGrid
Regards,
Derek.

Re: Кнопка копирование

Больше спасибо работает

Re: Кнопка копирование

Можно тоже самое для MySQL сделать? SQLExecute ругается на не соответствие БД

Re: Кнопка копирование

scopus wrote:

Можно тоже самое для MySQL сделать? SQLExecute ругается на не соответствие БД

Данный пример должен работать и для MySQL.
Пожалуйста приложите ваш проект либо опишите подробней ошибку.

Dmitry.

Re: Кнопка копирование

//Кнопка дублирование
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;

Re: Кнопка копирование

https://thumb.ibb.co/m6n8jT/image.png https://thumb.ibb.co/f8Xxdo/2.png https://thumb.ibb.co/gzSVyo/3.png

10 (edited by scopus 2018-07-26 09:17:10)

Re: Кнопка копирование

проект

Post's attachments

Attachment icon БД грумов.7z 398.18 kb, 359 downloads since 2018-07-26 

Re: Кнопка копирование

В данном случае имена полей в SQL запросе нужно брать в кавычки, пример

`ФИО ответственного`

Для создания дубликата записи используйте лучше пример, который я привел выше
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Кнопка копирование

DriveSoft wrote:

В данном случае имена полей в SQL запросе нужно брать в кавычки, пример

`ФИО ответственного`

Для создания дубликата записи используйте лучше пример, который я привел выше
http://myvisualdatabase.com/forum/misc. … download=1

В вашем примере выдает ошибку

Post's attachments

Attachment icon клон.PNG 35.66 kb, 251 downloads since 2018-07-27 

Re: Кнопка копирование

должно быть просто last_insert_id(), без всяких переменных внутри скобочек. база данных вернет id записи, последней внесенной в БД в принципе, и не важно, в какую таблицу.

Re: Кнопка копирование

В данном сообщении можете найти информацию, как исправить это
http://myvisualdatabase.com/forum/viewt … 831#p25831

Dmitry.

15 (edited by danisl 2018-09-17 13:57:57)

Re: Кнопка копирование

Добрый день! Никак не получается добавить кнопку копировать. Выдает ошибку. Можете помочь на примере какого нибудь справочника? Спасибо.

Post's attachments

Attachment icon 2018-09-17_164452.png 164.25 kb, 186 downloads since 2018-09-17 

Re: Кнопка копирование

В старых версиях у компонентов нет свойства sqlValue, поэтому вместо

Form1.GridEmployees.sqlValue

пишите

IntToStr(Form1.GridEmployees.dbItemID)
Dmitry.

Re: Кнопка копирование

А там и нет 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.

Re: Кнопка копирование

есть, в этой строке

employees WHERE id='+Form1.GridEmployees.sqlValue );
Dmitry.

Re: Кнопка копирование

Все равно выдает ошибку.... Что то я не так делаю походу....

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.

Re: Кнопка копирование

Пожалуйста описывайте подробно, какую ошибку выдает? Также приложите ваш проект.

Dmitry.

Re: Кнопка копирование

Это прикрепленный Ваш проект свыше. Ошибку прикрепляю

Post's attachments

Attachment icon ошибка приложения.png 171.96 kb, 190 downloads since 2018-09-18 

Re: Кнопка копирование

Проверил, данный скрипт работает без ошибок

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;
Dmitry.

Re: Кнопка копирование

При запуске выдает вот это. У меня версия 1,45

Post's attachments

Attachment icon 2018-09-18_165213.png 141.2 kb, 194 downloads since 2018-09-18 

Re: Кнопка копирование

в конце скрипта всегда должен быть блок

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.
Dmitry.

Re: Кнопка копирование

Да, все работает! Спасибо!