Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание таблицы Dbase, Программное создание таблицы 
:(
    Опции темы
Kusik
Дата 26.1.2006, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите, каким образом можно создать программно Dbase таблицу в run-time,сохранить ее на винт, а потом использовать для выгрузки данных???
PM MAIL ICQ   Вверх
Guedda
Дата 26.1.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Код

procedure TForm1.CreateMyTable(NameFile: string);
begin
  with Table1 do
  begin
    Active := False;
    DatabaseName := '';
    TableName := NameFile;
    TableType := ttDBase;
    with FieldDefs do
    begin
      Clear;
      Add('EmpNo', ftInteger, 0, False);
      Add('LastName', ftString, 20, False);
      Add('FirstName', ftString, 15, False);
      Add('PhoneExt', ftString, 4, False);
      Add('HireDate', ftDateTime, 0, False);
      Add('Salary', ftFloat, 0, False);
    end;
    CreateTable;
    Free;
  end;
end;



--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
ТоляМБА
Дата 26.1.2006, 13:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



С помощью SQL
Если через BDE, создай алиас в BDEadministrator или с помощью команента DataBase, присоедини к нему Query1 и в коде пиши:
Код

Query1.SQL.Text:='Create table table1 (one Char(20), two Float(6,4))';
Query1.ExecSQL;
Сохранится она сама на винт - путь пропишешь в алиасе
Цитата(Kusik @ 26.1.2006, 12:25 Найти цитируемый пост)
потом использовать для выгрузки данных???
Поконкретнее можно: откуда выгружать данные и т.п.

Это сообщение отредактировал(а) ТоляМБА - 26.1.2006, 13:27
PM   Вверх
Kusik
Дата 26.1.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это все хорошо,
но когда создается файл он получается поумолчанию не в той кодировке, напрмер заношу специальные символы, а получается только #. Когда изменяю кодировку в любом DB-редакторе, тогда все правильно выводится. как сделать чтобы при создании таблицы еще задавалась правильная кодировка, т.е. ASCII, а не cp866, которая по умолчанию
PM MAIL ICQ   Вверх
ТоляМБА
Дата 26.1.2006, 14:08 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Это тебе надо в BDE administrator на вкладке "Конфигурация" настроить кодировки. Вопрос не раз поднимался на форуме, используй поиск.
PM   Вверх
Kusik
Дата 26.1.2006, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



данные выгружаются из MS Word (проблема была в кодировке таблицы). спасибо за помощь
PM MAIL ICQ   Вверх
marhatter
Дата 10.12.2009, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте. Работаю с Dbase/Bde. Создаю таблицу -
Код

Query1.SQL.Clear;
Query1.SQL.Add('CREATE TABLE '''+fullname+'''(SNILS CHAR(15), REGION NUMERIC(5), FAMILY CHAR(40), NAME CHAR(40), ');
Query1.SQL.Add('FATHER CHAR(40), POL CHAR(1), DATA_ROGD DATE, IDENT NUMERIC(5), STAT NUMERIC(5))');
Query1.ExecSQL;
 
после этого добавляю в нее данные - 
Код

with Query2 do
begin
  SQL.Text := 'INSERT INTO '''+fullname+''' (SNILS, REGION, FAMILY, NAME, FATHER, POL, DATA_ROGD) VALUES (:snils, ''' + region +''', :fam, :name, :fat, :pol, :data_r)';
  ParamByName('snils').Value := snils;
  ParamByName('fam').Value := family;
  ParamByName('name').Value := name1;
  ParamByName('fat').Value := father;
  ParamByName('pol').Value := pol;
  ParamByName('data_r').Value := data1;
  ExecSQL;
end;

Все хорошо создается и добавляется. Но вот проблема - на одном компе в таблице есть данные, на другом - нет. Думаю проблема в BDE. Как можно решить эту проблему?
Заранее спасибо.

PM MAIL   Вверх
Данкинг
Дата 10.12.2009, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


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

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



Цитата(marhatter @  10.12.2009,  19:10 Найти цитируемый пост)
Но вот проблема - на одном компе в таблице есть данные, на другом - нет. 

Как так? Если данные добавились, они есть на любом компе. smile 


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


Новичок



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

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



Цитата(Данкинг @ 10.12.2009,  19:16)
Цитата(marhatter @  10.12.2009,  19:10 Найти цитируемый пост)
Но вот проблема - на одном компе в таблице есть данные, на другом - нет. 

Как так? Если данные добавились, они есть на любом компе. smile

Не правильно написал вопрос smile . На одном компе приложение создает таблицу - там все данные, которые мы занесли. запускаю на втором компе, файл создается, но данных там нет.
PM MAIL   Вверх
ТоляМБА
Дата 10.12.2009, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



На втором компе:
     значения переменных snils, family, name1, father, pol, data1 не пустые?
     ExecSQL не пропущено?

Добавлено через 1 минуту и 35 секунд
marhatter, ты файл создаешь ф Query1 а данные добавляешь в Query2 терзают смутные сомнения что у Query2 не прописан коннект
PM   Вверх
marhatter
Дата 10.12.2009, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(ТоляМБА @ 10.12.2009,  19:24)
На втором компе:
     значения переменных snils, family, name1, father, pol, data1 не пустые?
     ExecSQL не пропущено?

Добавлено @ 19:25
marhatter, ты файл создаешь ф Query1 а данные добавляешь в Query2 терзают смутные сомнения что у Query2 не прописан коннект

так на первом же компе все нормально создается и добавляется))))
PM MAIL   Вверх
ТоляМБА
Дата 10.12.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 3
Всего: 252



Цитата(marhatter @  10.12.2009,  21:28 Найти цитируемый пост)
так на первом же компе все нормально создается и добавляется))))

Переменным snils, family, name1, father, pol, data1 присваиваются из како-го то источника (не известного мне). Существует вероятность что на 1-м компе в этом источнике есть данные а на втором компьютере нет. Выводи значения переменных на экран и ещё сравни форматы. Если всё одинаковое, тогда можно грешить на BDE.
PM   Вверх
marhatter
Дата 10.12.2009, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(ТоляМБА @ 10.12.2009,  19:35)
Цитата(marhatter @  10.12.2009,  21:28 Найти цитируемый пост)
так на первом же компе все нормально создается и добавляется))))

Переменным snils, family, name1, father, pol, data1 присваиваются из како-го то источника (не известного мне). Существует вероятность что на 1-м компе в этом источнике есть данные а на втором компьютере нет. Выводи значения переменных на экран и ещё сравни форматы. Если всё одинаковое, тогда можно грешить на BDE.

Эти данные берутся из одного и того же текстового файла
PM MAIL   Вверх
Akella
Дата 12.12.2009, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Уже не раз писали об этом. Проблема в том, что винда или сам BDE данные держату себя в кэше. Нужно принудительно скинуть кэш на диск.
http://forum.vingrad.ru/index.php?showtopi...t&p=1949253

Код
Query2..FlushBuffers


Добавлено через 4 минуты и 8 секунд
marhatter, а зачем ты понял древнюю тему, да ещё не по твоему вопросу.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0591 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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