Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
skan

Создание таблицы методом cn.Execute

11.09.2006, 03:28. Показов 2827. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: создать программно таблицу заданного названия с двумя числовыми полями (тип длинное целое) заданного названия. Казалось бы что тут сложного, обычная задача для SQL. Однако...
Запускаю следующий код:
Visual Basic
1
2
3
4
5
6
7
Private Sub CreateMyTable()
Dim cn As ADODB.Connection
Dim strSQL$
Set cn = CurrentProject.Connection
strSQL = "CREATE TABLE MyTableName (Field_1 int, Field_2 int, PRIMARY KEY (Field_1));"
cn.Execute strSQL 
End Sub
И получаю сообщение об ошибке: "Ошибка синтаксиса при определении поля"
Что интересно - если строку "CREATE TABLE MyTableName (Field_1 int, Field_2 int, PRIMARY KEY (Field_1));" поместить в аксессовский SQL-ный редактор запросов, то он отрабатывает нормально...
Кроме того, если вместо "int" вставить, к примеру, "char(10)", то подпрограмма отрабатывает без ошибок, создавая таблицу с текстовыми полями.
Подскажите, плиз, как заставить метод Execute создать таблицу с числовыми полями?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2006, 03:28
Ответы с готовыми решениями:

Запрос на обновление таблицы через CurrentDb.Execute - слишком мало параметров
Камрады добрый день! подскажите как правильно сформулировать запрос на обновление записей через...

Создание процедуры содержащей команду EXECUTE
Задача: необходимо создать хранимую процедуру, которая 1. получает некоторый sql запрос в виде...

ADO: command Execute, значение счетчика после всавки новой записи
Как можно узнать значение счетчика после вставки новой записи не запрашивая БД ('SELECT FROM...')...

9
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
11.09.2006, 12:57
А почему int, если INTEGER?
0
skan
11.09.2006, 21:29
INTEGER не работает, равно как и LONG
А int, кстати, работает, если текст запускать через аксесовский запрос.
Можете привести пример работающего текста запроса? Может у меня аксес какой-то не такой или ADO не то?
skan
13.09.2006, 01:39
Проблема решена.
Если кому интересно, милости прошу сюда
http://www.sql.ru/forum/actualthread.aspx?tid=336948 http://www.sql.ru/forum/actualthread.aspx?tid=336948
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
13.09.2006, 17:00
Да полная ерунда там написана!

Создаём новую таблицу с двумя текстовыми полями и одним целочисленным полем:



CurrentDb.Execute "CREATE TABLE НоваяТаблица (Имя TEXT, Фамилия TEXT, Страховка INTEGER );"
0
skan
14.09.2006, 02:14
Михайло, а Вы попробуйте создать таблицу с названием поля - level...
Абсцессу не нравится именно это имя поля.
Кстати, у Вас написано
CurrentDb.Execute ... - это метод принадлежит DAO, если не ошибаюсь.
Я использовал ADO. ..хотя наверное в данном случае это не имеет значения
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
14.09.2006, 03:44
Вообще-то точки запятой в конце быть не должно. И доллар в операторе Dim зря стоит. Переменная должна быть вариантной. Хотя, возможно, это и не ошибка.
0
skan
15.09.2006, 04:11
2 Palva
зачем использовать переменную типа Variant, если априори известно, что она представляет собой тип String?
Точка с запятой в конце инструкции - это стандарт JetSql. Хотя если ее не ставить, то ошибки не возникает. Просто привычка наверное...
118 / 118 / 10
Регистрация: 12.05.2010
Сообщений: 1,207
19.09.2006, 14:27
А нечего использовать зарезервированные в среде разработки слова в качестве своих названий... Вы ведь о Field_x писали вроде бы...
0
skan
19.09.2006, 16:31
не знал, что Level - это зарезервированное слово. (Кстати, что это за оператор такой и где он используется?)
A field_1, field_2 использовал как обычно, для "понятности" кода.
Посыпаю голову пеплом...
P.S. странное, тем не менее, сообщение об ошибке выдает Access... ни словом не упоминает о том, что использовано зарезервированное слово, пишет "ошибка определения типа данных" что-то в этом роде. Поди тут догадайсся..))
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.09.2006, 16:31
Помогаю со студенческими работами здесь

Как изменить CursorType возвращаемый ADODB.Command.Execute()
Есть такой код, как можно изменить CursorType,LockType на (adOpenKeyset,adLockOptimistic) ...

Проблема с EXECUTE(@QueryStr) при процедурном доступе к данным
У меня БД, доступ к данным в которой должен быть организован исключительно через процедуры....

Вопрос по ADODB.Command.Execute
Если я в коде создаю ADODB.Recordset через метод Open, то потом завязать на него контрол DataGrid...

Не получается execute immediate
Есть функция function(:params). Имя этой функции хранится в таблице. После её выборки из таблицы...

В чем причина ошибки в инструкции CurrentDB.Execute
CurrentDB.Execute SQL_INSERT_запрос прерывается по ошибке "...мало параметров. Должно быть 10..."...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru