Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2015, 04:26   #1
Staziah2
Пользователь
 
Регистрация: 02.03.2015
Сообщений: 50
По умолчанию Обновление БД

Добрый день! Который день ломаю голову,но так и ничего понять не могу. Все время ругается при введении данных,но не обновляется почему.
Вот код:
Код:
unit Vvod;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, Grids, DBGrids, wwdblook, ExtCtrls, ComCtrls,
  Wwdbigrd, Wwdbgrid, wwdbdatetimepicker, Mask, wwdbedit, Wwdotdot,
  Wwdbcomb, Wwkeycb, DBCtrls, ComObj, ShellApi;

type
  TForm2 = class(TForm)
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Label7: TLabel;
    tipi: TwwDBLookupCombo;
    Label1: TLabel;
    cex: TwwDBLookupCombo;
    Label9: TLabel;
    data: TwwDBDateTimePicker;
    Label10: TLabel;
    Label11: TLabel;
    Edit2: TEdit;
    Label12: TLabel;
    wwDBComboDlg1: TwwDBComboDlg;
    Button4: TButton;
    Button5: TButton;
    wwDBGrid2: TwwDBGrid;
    wwDBLookupCombo1: TwwDBLookupCombo;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure wwDBComboDlg1Enter(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);   
    procedure tipiChange(Sender: TObject);
    procedure dataChange(Sender: TObject);
    procedure Edit2Change(Sender: TObject);

    
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation
         uses fr,xr,Unit5,Unit6,FmxUtils;
{$R *.dfm}


procedure TForm2.Button1Click(Sender: TObject);
var Path1, Path2 , Path3: String;
begin
Path1 := Form2.wwDBComboDlg1.Text;
Path2 := '\\Fs\наряды;\'+cex.Text+'\'+data.Text+'\'+cex.Text+'_'+wwDBLookupCombo1.Text+'_'+Edit2.Text+'.tif';
Path3 := '\\Fs\наряды;\'+cex.Text+'\'+data.Text;
if FileExists(Path3)=false then
begin
  if ForceDirectories(Path3) then
  CopyFile(Path1,Path2);
end;


if varisnull(dm.ceh.Lookup('ceh',cex.Text,'ceh'))=true then   
begin
      dm.Query.SQL.Clear;         
      dm.Query.SQL.Text:= 'Insert into ceh (ceh) Values ('''+cex.Text+''')';     
      dm.Query.ExecSQL;
      dm.ceh.Requery();

end   ;


if varisnull(dm.zakaz.Lookup('N_zakaz',wwDBLookupCombo1.Text,'N_zakaz'))=true then
begin
      dm.Query.SQL.Clear;         
      dm.Query.SQL.Text:= 'Insert into N_zakaza (N_zakaz) Values ('''+wwDBLookupCombo1.Text+''')';     
      dm.Query.ExecSQL;
     dm.zakaz.Requery();

end   ;


dm.Query.SQL.Clear;         
dm.Query.SQL.Text:= 'Insert into naryadi (ceh,data,N_zakaz,N_naryad,Tip_dok,path ) Values ('''+cex.Text+''','''+data.Text+''','''+wwDBLookupCombo1.Text+''','''+Edit2.Text+''','''+tipi.Text+''','''+Path2+''')';     
dm.Query.ExecSQL;        

dm.Main.SQL.Clear;
dm.Main.SQL.Text:= 'select * from [naryadi]';
dm.Main.Open;     
refresh;

dm.Main.Last;    
end;


procedure TForm2.Button2Click(Sender: TObject);
begin
if MessageDlg('Вы точно хотите удалить запись?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    dm.Main.Delete;
end;

procedure TForm2.wwDBComboDlg1Enter(Sender: TObject);
begin
    if OpenDialog1.Execute then
  begin
   if not (dm.Main.State in [dsInsert,dsEdit]) then
   //dm.Main.Edit;
  Form2.wwDBComboDlg1.Text:= OpenDialog1.FileName;
 // dm.Main.Post;
   
end;
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
      Application.CreateForm(TForm5, Form5);
      Form5.ShowModal;
end;

procedure TForm2.Button6Click(Sender: TObject);
begin
      Application.CreateForm(TForm6, Form6);
      Form6.ShowModal;
end;

procedure TForm2.Button7Click(Sender: TObject);
var Path1, Path2 , Path3: String;
begin
Path1 := Form2.wwDBComboDlg1.Text;
Path2 := '\\Fs\наряды\'+cex.Text+'\'+data.Text+'\'+cex.Text+'_'+wwDBLookupCombo1.Text+'_'+Edit2.Text+'.tif';
Path3 := '\\Fs\наряды\'+cex.Text+'\'+data.Text;
if FileExists(Path3)=false then
begin
  if ForceDirectories(Path3) then
  CopyFile(Path1,Path2);
end;
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
ShellExecute(Handle,nil,PChar(dm.Mainpath.AsString) ,nil,nil,SW_RESTORE);
end;


procedure TForm2.tipiChange(Sender: TObject);
begin
  cex.Text:= '';
end;

procedure TForm2.dataChange(Sender: TObject);
begin
 Edit2.Text := '';
end;

procedure TForm2.Edit2Change(Sender: TObject);
begin
  wwDBComboDlg1.Text := '';
end;
end.

А вот ошибка:
рисунок_7.jpg
рисунок_8.jpg
рисунок_9.jpg
рисунок_10.jpg

Что не так я сделала? БД: MSSQL; Delphi 7

Последний раз редактировалось Staziah2; 05.05.2015 в 04:28.
Staziah2 вне форума Ответить с цитированием
Старый 05.05.2015, 08:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если requery убрать ошибка будет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.05.2015, 10:57   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Все время ругается при введении данных,но не обновляется почему
Это не очем не говорить ? Primary key PK_N_zakaz Cannout insert dublicate
https://technet.microsoft.com/ru-ru/...ql.105%29.aspx
Столбцы не должны допускать значений NULL.

Столбцы ограничения PRIMARY KEY, указанного при создании таблицы, неявно преобразуются в NOT NULL. Разреженный столбец нельзя использовать как часть первичного ключа, так как разреженные столбцы должны допускать значения NULL.

В них не должно быть повторяющихся значений.

Если ограничение PRIMARY KEY добавляется к столбцу, который содержит повторяющиеся значения или допускает значения NULL, компонент Database Engine возвращает ошибку и ограничение не создается.
Изображения
Тип файла: jpg 1.jpg (18.7 Кб, 95 просмотров)

Последний раз редактировалось xxbesoxx; 05.05.2015 в 11:09.
xxbesoxx вне форума Ответить с цитированием
Старый 06.05.2015, 09:13   #4
Staziah2
Пользователь
 
Регистрация: 02.03.2015
Сообщений: 50
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если requery убрать ошибка будет?
и убирала,всё равно та же ошибка(
Staziah2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WP 8: обновление dmitrypatoka Мобильные ОС (Android, iOS, Windows Phone) 2 04.01.2014 17:28
Обновление Simon1712 Общие вопросы Delphi 5 22.04.2013 02:06
Обновление 1С pu4koff Софт 2 09.08.2010 17:22
Обновление ПО [Smarik] Общие вопросы Delphi 3 02.02.2009 09:00