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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2008, 13:06   #1
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
Вопрос Создание новых таблиц в Access через Delphi

Как создать новую таблицу или саму базу данных Access через Delphi?
Как скопировать уже имеющуюся таблицу с новым именем и ту которую копировали очистить?
mopozoff вне форума Ответить с цитированием
Старый 19.05.2008, 13:52   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Выполни через ADOQuery запрос на создание таблицы:
Код:
CREATE TABLE `q` (
`y` VARCHAR( 43 ) NOT NULL 
);
для примера.

Для копирования данных должен подойти INSERT

Для очистки таблицы примени метод EmptyTable
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.05.2008, 11:09   #3
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
По умолчанию

Куда в ADOQuerry это писать?
Как добраться до таблицы которая в Access (что-то типа такого: ADO... . <имя таблицы> . <параметры и методы>), чтобы использовать EmptyTable?
Какие параметры должны быть у INSERT?
mopozoff вне форума Ответить с цитированием
Старый 20.05.2008, 11:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Куда в ADOQuerry это писать?
Код:
with adoquery1.sql do begin
 add('CREATE TABLE q (y VARCHAR( 43 ) NOT NULL); ');
end;
Только тут надо с ковычками не переназапутать

Цитата:
Как добраться до таблицы которая в Access (что-то типа такого: ADO... . <имя таблицы> . <параметры и методы>), чтобы использовать EmptyTable?
Я наверное маненько набрехав, ибо в ADO (только щаз вспомнил) нет такого метода, но ничего
команда SQL Delete from <таблица> (ее вызывать через ExecSQL) опустошит таблицу.
Цитата:
Какие параметры должны быть у INSERT?
А в хелп по SQL заглянуть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2008, 02:48   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от mopozoff Посмотреть сообщение
Как создать новую таблицу или саму базу данных Access через Delphi?
Код:
{Using ADOX:  uses ComObj; // You can with ADOX (Microsoft ADO Extensions for DDL and Security)}

function CreateAccessDatabase(FileName: string): string;
var 
     cat: OLEVariant; 
begin 
   Result := ''; 
         try 
          cat := CreateOleObject('ADOX.Catalog');       
          cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');    
          cat := NULL; 
        except on e: Exception do 
       Result := e.message; 
       end; 
end; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
CreateAccessDatabase('c:\Testdb.mdb'); 
end;
Dux вне форума Ответить с цитированием
Старый 22.05.2008, 10:38   #6
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
По умолчанию

Пишу такой текст:

adoquery1.Close;
adoquery1.SQL.Clear;
with adoquery1.sql do begin
add('CREATE TABLE quit (id smallint NOT NULL PRIMARY KEY,fio varchar(50)not null); ');
end;
adoQuery1.Open;

Таблица создаётся, всё ок, но вылетает ошибка "ADOQuery1: CommandText does not return a result set" Русская версия "Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной операции"
Как с ней бороться?
mopozoff вне форума Ответить с цитированием
Старый 22.05.2008, 10:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Как с ней бороться?
adoQuery1.ExecSQL;
P.S. Читать посты нужно внимательно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.05.2008, 10:46   #8
AlexandrSid
Форумчанин
 
Регистрация: 31.10.2007
Сообщений: 103
По умолчанию

Делай не
adoQuery1Open;,
а
adoQuery1.ExecSQL;
AlexandrSid вне форума Ответить с цитированием
Старый 22.05.2008, 11:34   #9
mopozoff
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 14
По умолчанию

Ещё вопрос.
Как из базы считать список таблиц, скажем, в Listbox?
И проверить имеется ли таблица с какми-либо именем в базе?

Последний раз редактировалось mopozoff; 22.05.2008 в 11:39.
mopozoff вне форума Ответить с цитированием
Старый 23.05.2008, 10:33   #10
TaTT DoGG
Форумчанин
 
Аватар для TaTT DoGG
 
Регистрация: 25.04.2008
Сообщений: 476
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
adoQuery1.ExecSQL;
P.S. Читать посты нужно внимательно.
а уладять таблицу нужно, как я понял через DELETE TABLE. Так?
Так вот если так, то именно на ExecSQL программа и ругается
Life if about choices
Make the right choice
TaTT DoGG вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание таблиц MAcK Общие вопросы Delphi 4 07.11.2007 15:51
Связывание таблиц FoxPro в Access 2002 Nessa Microsoft Office Access 2 04.11.2007 09:54
Через запрос перенести данные с 6 таблиц Таня84 БД в Delphi 5 22.03.2007 15:46
Создание новых объектов Washington Общие вопросы Delphi 1 10.03.2007 21:57
Создание новых разделов PAVEL315 О форуме и сайтах клуба 14 20.01.2007 23:05