Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

Index XXXX is not a valid name   Найти похожие ветки 

 
keeper   (2003-01-29 10:59) [0]

При создании новой таблицы:

ADOConnection2.Execute("create table temp_mvu (mvuid INTEGER, a VARCHAR(8),b VARCHAR(25),c VARCHAR(20),d VARCHAR(20), tip_kan VARCHAR(20),naim VARCHAR(60),n_vx VARCHAR(2),n_vyx VARCHAR(2),x_mod VARCHAR(4),kont VARCHAR(3),PRIMARY KEY(mvuid) );");

выдает ошибку:
[Microsoft][ODBC Paradox driver]"Index_00C7A10F_4D54_4A99" is not a valid name. Make sure it does not include invalid characters and punctuation and that it is not too long.
Если тот же SQL исполнить в database desktop все работает...
ADOConnection настроен нормально (открывать через него таблицы можно). В чем загвоздка?


 
MsGuns   (2003-01-29 12:01) [1]

Разрежь запрос на несколько строк.


 
Keeper   (2003-01-29 14:13) [2]

Пробовал все лишнее отрезать - оставлял пару столбцов - та же фигня... :(


 
Johnmen   (2003-01-29 14:17) [3]

Вообще говоря, чтобы построить первичный ключ по некоторому полю, оно д.б. NOT NULL
:)


 
Kuusiniemi   (2003-01-29 14:39) [4]

2 Johnmen ©> В вопросе сказано "Если тот же SQL исполнить в database desktop все работает". Стало быть дело не в этом. Читаем дальше: "ADOConnection настроен нормально" - стало быть проблема в ADO.

А вообще никто из вас не угадал. :) Эта проблема - ограничения ADO:
1. Для того, чтобы Вы имели возможность производить действия по добавлению, удалению записей или редактированию данных в таблице, таблица должна иметь первичный ключ.
2. Имя первичного ключа должно совпадать с названием таблицы, а имена индексов с именами полей
3. Первичный ключ должен быть определен для первых "n" полей таблицы.
4. Вы не можете создавать для таблицы индексы, если для нее не определен первичный ключ.
5. Первый создаваемый для таблицы уникальный индекс будет создан как первичный ключ.
6. Первичный ключ может быть создан для таблицы только в том случае, если в ней нет ни одной записи.
7. Действия по добавлению или удаления полей в таблице должны быть произведены до того, как для нее создан первичный ключ.

Источник - MSDN.

И по опыту: вы не можете удалить существующий первичный ключ, даже если в таблице нет ни одной записи.


 
Keeper   (2003-01-29 15:09) [5]

Из вот этого всего (1,2,3..7) следует что ИМЯ ПЕРВИЧНОГО КЛЮЧА ДОЛЖНО СОВПАДАТЬ С ИМЕНЕМ ТАБЛИЦЫ ?!? Если ДА, то НЕТ (Всмысле попробовал назвать первичный ключ по имени таблицы - ругается теми же словами).

Или лыжи не едут...или одно из двух... :(


 
sniknik   (2003-01-29 15:20) [6]

все ясно, лыжи едут... :о)))

создавай таблице без ключа (совсем), первой командой после создания делай
CREATE UNIQUE INDEX temp_mvu ON temp_mvu (mvuid)
получиш желаемое



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

Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
7-38593
-Alex-
2002-12-10 19:40
2003.02.13
добавление полей в OpenDialog и SaveDialog


3-38063
kaif
2003-01-25 01:32
2003.02.13
Захват файла gdb ???


9-38006
VitGun
2002-09-02 20:03
2003.02.13
Изометрический движок


6-38413
Oskolok
2002-12-22 19:24
2003.02.13
Как послать e-mail без специальных компонентов?


9-38004
Namo
2002-08-29 15:42
2003.02.13
OpenGL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский