Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
У меня задача... Есть 2 таблицы (.dbf) CN и TR. Структура TR такая же как и CN + 6 полей. Эти 6 полей приходится постоянно вручную добавлять в CN таблицу. Эти поля должны быть пустыми. Мне необходимо с помощью Делфи сделать так, чтобы автоматически (нажав на кнопочку) 6 полей с названиями из TR(постоянно одинаковые) добавились в таблицу CN. Эти таблицы read-only. Как мне используя TQuery и SQL запросы можно это реализовать??? Может есть какой-либо более простой способ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 10:32 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Я над этим уже какой день бьюсь! А ведь это должно быть по идее очень просто! Ну подскажите, хоть какие-нибудь правильные sql запросы в Tquery! Как там можно создать новую таблицу? Добавить новые поля? CREATE TABLE и др. у меня просто не фурычат... С помощью QueryX.FieldDefs.AddFieldDef.XXX тоже ничего не получаеться... Кто этим занимался --- помогите!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 12:39 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Для добавления полей ипользуй ALTER TABLE ADD... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 13:17 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
ALTER TABLE я знаю... -- но опять же он мне выдаёт ошибку связанную толи с хендлом толи с индексом... Если ты писал сам что-то --- напиши мне как полностью и правильно.. Я смотрю в книгах и делаю также -- а он ругается --- даже на самое простое... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 13:30 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
А я воспользовался на terry.ru компонентами не использующими bde только регистрацию требуют - уроды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 15:10 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Да terry.ru не катит... Мне надо именно с TQuery и SQL ... Ну неужели здесь никто ничего подобного не делал... Ну покажите как у вас это получилось... Ну хоть покажите как добавлять с помощью Add... И вообще, у кого-то может есть свой проект на эту тему --- ну не жадничайте, скиньте на [email=]gis98@ukr.net ... PLEEEEEEEEEEEEEZZZZZZZZZZZZZZZZEEEEEEEEZZEEEZZEEZE..................... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 15:25 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Действительно ALTER TABLE не работает! :-( А почему не работает CREATE TABLE? Какую ошибку показывает? Какие таблицы у тебя? FoxPro? Что нужно сделать: создать новую таблицу или изменить существующую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 17:23 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
с посощью database desktopa - поставляется с Делфями - надо создать пустую таблицу с заимствованием структуры из TR (кнопка Borrow...) + добавить те 6 новых полей - делается очень легко (тип поля выбирается из списка)/// После всего этого дела полученную таблицу сохранить и хранить - это шаблон - CN_NEW! Когда надо сделать твою процедуру - копируеш шаблон в другую табоицу (можно даже проводником - она еще пустая) - получаем из CN_NEW новый CN - тоже пустой (это можне сделать также с помощбю desktopa) А потом в делфях в Querry.SQL пишем: insert into CN select TR.*,0,0,0,0,0,0 from TR; и все! но вместо 0 можно писать "" - если поле данного типа - character/// или null -----------------------все--------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 17:24 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Спасибо... НЕ совсем понял... Но сейчас буду пробовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 17:38 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
БД у меня помоему из ALTA VISTA --- а потом они будут использоваться C++ Builder(om)... А CREATE TABLE я уже как только не пробовал... Может сейчас с поощью советов srgb что-нибудь получиться!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 17:44 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Я наверное вообще отупел... Но... Извини, я чуть-чуть неправильно объяснил... Мне в таблицу CN нужно просто добавить 6 полей в Делфи и сохранить под названием TR... И так каждый раз повторять... И поэтому когда я в Делфи пишу... Код: plaintext NEW - у меня таблица с 6 пустыми полями... У меня ничего не происходит, а что должно произойти я непонимаю... Оно что ли должно добавить эти поля и сохранить в CN?... Так она же у меня read-only... В общем, если хоть кто-то что-то понял, просьба помочь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 18:42 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
ну и что же ты хочешь получить, если ты пытаешся вставить в таблицу пустой запрос?!!! Сколько он у тебя записей возвращает? Нисколько! А тогда откуда взять информацию о структуре таблицы?!!! Короче, почитай help по LocalSQL, который идёт вместе с BDE, обычно лежит в том же каталоге, где стоит BDE. Он так и называется localSQL. Если в поиске набрать create table, то будет выдан следующий текст: ========================= Creates a table. CREATE TABLE table_reference (column_definition [, column_definition,...] [, primary_key_constraint]) Description Use the CREATE TABLE statement to create a dBASE or Paradox table, define its columns, and define a primary key constraint. The table name reference for CREATE TABLE must comply with the rules described in the section on naming conventions. Table names with embedded spaces must be enclosed in quotation marks. Column definitions consist of a comma-separated list of combinations of column name, data type, and (if applicable) dimensions. The list of column definitions must be enclosed in parentheses. The number and type of dimensions that must be specified varies with column type. See the section on defining column types for specific syntax of all supported column types. Use the PRIMARY KEY (or CONSTRAINT) keyword to create a primary index for the new table.The following statement creates a Paradox table with a PRIMARY KEY constraint on the LAST_NAME and FIRST_NAME columns: CREATE TABLE "employee.db" ( last_name CHAR(20), first_name CHAR(15), salary NUMERIC(10,2), dept_no SMALLINT, PRIMARY KEY (last_name, first_name) ) An alternate syntax for creating a primary key constraint is using the CONSTRAINT keyword. While Paradox primary indexes do not have names, an arbitrary name needs to be provided to satisfy the CONSTRAINT keyword need for a token name. CREATE TABLE "employee.db" ( last_name CHAR(20), first_name CHAR(15), salary NUMERIC(10,2), dept_no SMALLINT, CONSTRAINT z PRIMARY KEY (last_name, first_name) ) Indicate whether the table is a Paradox or dBASE table by specifying the file extension when naming the table: ".DB" for Paradox tables ".DBF" for dBASE tables If you omit the file extension for a local table name, the table created is the table type specified in the Default Driver setting in the System INIT page of the BDE Administrator utility. When specifying a file extension, the table name reference for CREATE TABLE must be enclosed in quotation marks. Column definitions based on domains are not supported. Primary keys are the only form of constraint that can be defined with CREATE TABLE. Note To create a table with columns that have non-alphanumeric characters or spaces in the column name, you must enclose the column name in quotation marks and prefix the quoted column name with the table name in quotes. CREATE TABLE "abc.db" A ( ID CHAR(3), "abc.db"."funny name" CHAR(10) ) ===================== остальное смотри сам. Только учти, что такие запросы нужно запускать не через Querie.Open, а через Querie.ExecSQL, поскольку никаких наборов данных ни не возвращают. Естественно, что и Close ему потом делать не нужно. Удачи! Да, кстати, при использовании запроса данная таблица не должна быть открыта в другом DataSet'е, иначе BDE тебя пошлёт. То, что у тебя сами таблицы ReadOnly - я так понимаю это проставлено тоже в DataSet'е? Поскольку если это флаг на файле, то, опять же, BDE тебя пошлёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2003, 19:22 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
У меня сами БД (их файлы, ну создавлись они так) --- ReadOnly... Поэтому я хочу загрузить таблицу, сохранить её под другим именем, потом снова загрузить и добавить свои пустые поля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2003, 09:20 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Откуда такие сведения что ALTER TABLE не работает в локальном SQL ??? Вот один из кусков моего проекта (немного упрощенный): QueryTmp.Close; QueryTmp.SQL.Text := 'ALTER TABLE "tmp.dbf" ADD DataTek Date, ADD TypStr CHAR(1), ADD Coment CHAR(100)'; QueryTmp.ExecSql; Все работает на ура, в чем проблемы ? Зачем мучаться с какими то шаблонами и прочим ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2003, 17:02 |
|
||
|
Как это сделать?
|
|||
|---|---|---|---|
|
#18+
Забыл написать, что для полноты картины, сначала нужно: copyfile('c:\star.dbf','c:\tmp.dbf',false); Это так на всякий случай :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2003, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32225182&tid=2117460]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 356ms |

| 0 / 0 |
