Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание таблицы в Access, Помогите!! 
:(
    Опции темы
Grig
Дата 24.5.2005, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



Проблема в следующем:
Реализовать вот такой алгоритм в ADO
Если нет таблицы с таким именем, то создать ее с такими-то полями..
Как это сделать?


--------------------
        
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.5.2005, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 2
Всего: 64



Примерно так:

Код

var
  Tables: TStringList;
begin
  Tables := TStringList.Create;
  try
    ADOConnection1.GetTableNames(Tables);
    if Tables.IndexOf('TableName') = -1 then
      ADOConnection1.Execute('CREATE TABLE TableName (Param1 Number not null primary key, ...)');
  finally
    FreeAndNil(Tables);
  end;



--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
~FoX~
Дата 24.5.2005, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



Код

try 
    ADOQuery1.DatabaseName := 'MyDb'; 

    with ADOQuery1.SQL do 
      begin 
        Add('Create Table MyTable'); 
        Add('( ID      AutoInc,       '); 
        Add('  Name    Char(255),      '); 
        Add('  Primary Key ( ID ) )   '); 
      end; 

    ADOQuery1.Active := true; 
except
    ShowMessage('опаньки');
end;
ADOQuery1.Active := false;




--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
neweraser
Дата 25.11.2009, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



smile не стал создавать новую тему, так как просто сильно туплю и не могу разобраться, хотя информации навалом. как мне создать новую таблицу в существующей открытой базе данных access без использования sql-запросов? например таблицу 'table1' c 4 полями: текст, дата, логическое и мемо?

Добавлено через 35 секунд
или ткните носом если можно  smile 


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 26.11.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(neweraser @  25.11.2009,  23:56 Найти цитируемый пост)
как мне создать новую таблицу в существующей открытой базе данных access без использования sql-запросов? 

 smile А зачем такое условие?
Ну да, ответ "никак". smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neweraser
Дата 26.11.2009, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



весело... значит компонент TADOQuery все равно придется добавлять?


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 26.11.2009, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(neweraser @  26.11.2009,  00:25 Найти цитируемый пост)
значит компонент TADOQuery все равно придется добавлять? 

Ну да, а чем он плох-то? По-моему, основная работа с Access и происходит в рамках TADOConnection и TADOQuery. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neweraser
Дата 26.11.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



ну так TADOConnection у меня на форме есть  smile а без TADOQuery нельзя? smile


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 26.11.2009, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(neweraser @  26.11.2009,  00:30 Найти цитируемый пост)
а без TADOQuery нельзя?

Нет, я, конечно, не берусь утверждать на 100%, что нельзя, но на 99% уверен, что нельзя, да и через запрос в любом случае - самый простой и понятный способ. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neweraser
Дата 26.11.2009, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



жалко, не хотел в sql лезть, но придется.. для меня это что-то страшное если честно  smile 


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 26.11.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(neweraser @  26.11.2009,  01:22 Найти цитируемый пост)
жалко, не хотел в sql лезть, но придется.. для меня это что-то страшное если честно

Я тебя уверяю, что если способ создания таблицы без SQL и существует, то он не менее страшен. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
neweraser
Дата 26.11.2009, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



а это с использованием чего? smile и что мне нужно добавить на форму и что в uses?


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Данкинг
Дата 26.11.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А с помощью чего там к "парадоксу" подключаются, не знаю. smile 




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Teleport
Дата 26.11.2009, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 5.7.2008
Где: Прибалтика

Репутация: 1
Всего: 6



2 neweraser - кидаешь на форму ADOQuery и ADOConnection. У ADOConnection свойство LoginPrompt ставишь в false. Далее вот тебе код:

Код

procedure TForm1.FormCreate(Sender: TObject);
begin
 //где my_db.mdb - полный путь и имя бд. В данном случае бд лежит
 //в одной папке с исполняемым файлом
 ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data ' +
 'Source=my_db.mdb;Persist Security Info=False';
 try
   ADOConnection1.Connected:= true;
   ADOQ1.Connection:= ADOConnection1;
   ShowMessage('Успешно подключились к бд');
 except
   ShowMessage('Ошибка подключения к бд')
 end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOQ1.Active:= false;
 ADOQ1.SQL.Clear;
 ADOQ1.SQL.Add('CREATE TABLE my_table (id int NOT NULL PRIMARY KEY , my_discription MEMO NULL);');
 ADOQ1.ExecSQL;
end;


язык SQL - довольно просто в понимании и очень гибок - рекомендую пользоваться именно запросами при работе с бд. Базовые понятия (SELECT, INSERT, UPDATE, CREATE, DELETE, DROP и др.) можно за пару часов и освоить и опробовать. + Почитать когда использовать ADOQuery.ExecSQL, а когда ADOQuery.Active. 

И еще при составлении SQL запросов - внимательно надо следить за кавычками, скобками, пробелами. Сам много раз напарывался на них.

Это сообщение отредактировал(а) Teleport - 26.11.2009, 23:13


--------------------
user posted image
user posted image 
PM MAIL   Вверх
neweraser
Дата 26.11.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 17.2.2008

Репутация: нет
Всего: 6



Teleport, а что можно сделать со строчкой
Код

ADOQ1.SQL.Add('CREATE TABLE my_table (id int NOT NULL PRIMARY KEY , my_discription MEMO NULL);');

если я создаю таблицу с 30-40 полями? т.е. как ее разбить чтоб не в одну строчку?

Добавлено через 2 минуты и 32 секунды
или постоянно прописывать
Код

With ADOQuery.SQL do
  begin
    Add('CREATE TABLE example');
    Add('(id INT, data VARCHAR(100));');
    ...
    ...
  end;
?


--------------------
Кто ищет, тот всегда найдет.
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0663 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.