![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
	 | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Добрый день. 
		
	
		
		
		
		
		
		
			Перерыл кучу статей в инете, но так и не нашел подходящего решения. Подскажите пжл, как создать временную таблицу при открытии формы. В последствии в нее буду записывать и хранить информацию, пока не будет сохранена информация на основной форме, если вместо сохранения будет отмена, то таблицу просто закрываю/уничтожаю. Если же произойдет сохранение, то все информацию из временной переношу в основную. Можно какие нибудь примеры создания таблицы? Использую Delphi 11 и СУБД Access Последний раз редактировалось Ru_Di, 13.05.2023 в 13:56.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Посмотри, очень много разных компонентов типа TMemoryTable. 
		
	
		
		
		
		
		
	
		
		
	
	
	Так же можно сделать на основе TClientDataSet. Это просто хранение данных в памяти. Ну а в СУБД можно сделать нормальную таблицу. Можно просто создать статическую таблицу и просто очищать ее. Можно создавать и уничтожать динамически с помощью SQL: Код: 
	CREATE TABLE {Name} (
ID  INTEGER,
...
)Код: 
	DROP TABLE {Name} | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Пошел через физическую (временную) таблицу в БД в нее записываю, потом переношу в основную, очищаю временную. 
		
	
		
		
		
		
		
	
		
		
	
	
	Но вот с переносом возникла сложность, что в я делаю не так, что не выполняется копирование? Код: 
	var
myQ: TADOQuery;
myQ1: TADOQuery;
begin
  myQ := TADOQuery.Create(nil);
  myQ.Connection := DM.ADOConnect_baza_konkursov;
  myQ.SQL.Clear;
  myQ.Parameters.Clear;
  myQ.sql.Text := 'SELECT * FROM tab_predmet_zakupki_temp';
  myQ.Open;
  if myQ.RecordCount > 0 then 
    begin
      myQ1 := TADOQuery.Create(nil);
      myQ1.Connection := DM.ADOConnect_baza_konkursov;
      myQ.First;
      while not myQ.Eof do
        begin
          myQ1.SQL.Clear;
          myQ1.Parameters.Clear;
          myQ1.sql.Text := 'INSERT INTO tab_predmet_zakupki (naimenovanie) VALUES (:naimenovanie)';
          myQ1.Parameters.ParamByName('naimenovanie').Value := myQ.FieldByName('naimenovanie').Text;
          myQ1.ExecSQL;
          myQ.Next;
        end;
    end; | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  |