На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Не удается обновить БД
    Добрый день! Который день ломаю голову,но так и ничего понять не могу. Все время ругается при введении данных,но не обновляется почему.
    Вот код:
    ExpandedWrap disabled
      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.

    Вот ошибка: Violation of Primary Key constraint 'PK_N_zakaza'. Cannot insert dublicate key in object 'N_zakaza'.

    Что не так я сделала? БД: MSSQL; Delphi 7
      Ты пытаешься записать первичный ключ со значением, которое в таблице уже есть.
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0461 ]   [ 17 queries used ]   [ Generated: 26.04.24, 03:20 GMT ]