Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.25;
Скачать: CL | DM;

Вниз

Сделал Create Table, не погу подключить програмно. Help!   Найти похожие ветки 

 
Filat ©   (2002-07-04 09:16) [0]

Всем привет! Собственно сабж.


 
Pro ©   (2002-07-04 09:23) [1]

Собственно поподробнее бы ...


 
Filat ©   (2002-07-04 10:00) [2]

Поскольку не уехал в командировку, то подробнее запросто. :))))
Взял из FAQ пример создания программно таблицы. Сделал, работает.
Попробовал её подключить в TTable и сделать активной, вывести в DBGrid - Access violation ....
Как это делается правильно програмно.
В конечном итоге мне надо следующее. Новый день: закрывается вчерашний, базы архивируются и перекладываются в архив. Открытие дня - создание таблиц, их подключение и активация. Обычная работа с базами.
Спасибо!


 
Pro ©   (2002-07-04 10:14) [3]

Думаю ты с активным query после создания им таблицы пытаешся Table подцепить
не думаю что так можно


 
Desdechado ©   (2002-07-04 10:15) [4]

и где сложность?


 
Filat ©   (2002-07-04 10:39) [5]

Таблицу создаю так:
begin
with Table1 do
begin
Active := False;
DatabaseName := "";
TableName := "Proba";
TableType := ttParadox;
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;
Потом для простоты проверки по нажатию кнопки
делаю подключение
Table1.TableName:="Proba";
Table1.TableType:=ttParadox;
Table1.Active:=True;
Кстати, как правильно указать или определить где лежит таблица?
Спасибо


 
VICTOR_   (2002-07-04 11:02) [6]

//Замени
//Free;
//на
Close;

Таблица лежит в каталоге, где находится *.exe
Для более точного пути указывай
Table1.TableName:="с:\Твой каталог\Proba";


 
Desdechado ©   (2002-07-04 11:03) [7]

после создания таблицы она появляется?
почему DatabaseName пустой?


 
Desdechado ©   (2002-07-04 11:06) [8]

2 VICTOR_
точно, прозевал Free :)


 
Filat ©   (2002-07-04 11:43) [9]

>> почему DatabaseName пустой?
А разве его обязательно заполнять?

Как определить где лежит мой *.exe, чтобы потом относительно этого пути уже искать базы, пробовал через Application.EXEName, но что то не получается.
Почему надо определять путь? Юзер же может поставить прогу куда угодно.


 
Filat ©   (2002-07-04 11:51) [10]

Только что проверил, получилось.
Осталась проблема с автоматическим определением пути ехе программы. Я где-то уже видел в форуме.
Подскажите ещё раз пожалуйста.
Спасибо!


 
kaif ©   (2002-07-04 11:57) [11]

Путь к exe-файлу можно определить так:
Функция ParamStr(0) возвращает полное имя работающего exe-файла.
Поэтому путь:
ExtractFileDir(ParamStr(0));


 
Filat ©   (2002-07-04 14:15) [12]

Спасибо, работает.
По ходу появился ещё вопрос.
Как создать поле типа NOT NULL исходя из кода приведённого выше.
В IB я знаю, а как в этом случае поступить.
И ещё, что означает значение False в строке Add("Salary", ftFloat, 0, False);
Help молчит по этому поводу.
Спасибо.


 
Filat ©   (2002-07-04 16:46) [13]

Неужели никто не знает?


 
Desdechado ©   (2002-07-04 17:08) [14]

> Help молчит по этому поводу
тогда обычно смотрят исходники компонентов

а создание таблицы лучше (имхо) делать через TQuery.
CREATE TABLE ...


 
VICTOR_   (2002-07-05 12:20) [15]

>Filat © (04.07.02 14:15)
У тебя в вопросе написан ответ :)
Напиши
Add("Salary", ftFloat, 0, True);
Последний параметр означает Required поле
True - значение обязательно для ввода
см. Help
1.TDataSet.FieldDefs
Example
2.Required



Страницы: 1 вся ветка

Текущий архив: 2002.07.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
1-81230
Greenvich
2002-07-13 20:51
2002.07.25
Загрузить 8-ую строку из INI-файла.


3-81179
Nebula
2002-07-04 16:41
2002.07.25
IBQuery.Filter


4-81509
savva
2002-05-20 14:12
2002.07.25
CertFindCertificateInStore && CryptApi v.2


8-81383
Просто чел
2002-03-20 01:13
2002.07.25
Flash ролик в Delphi


14-81431
TormoZZZ
2002-06-26 16:48
2002.07.25
Восстановление информации.