информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
 Tailscale окончательно забанила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Не знаю, как Аксес к этому отнесется (мелкомягкие всегда... 14.03.11 03:08  Число просмотров: 2852
Автор: Fighter <Vladimir> Статус: Elderman
Отредактировано 14.03.11 03:10  Количество правок: 2
<"чистая" ссылка>
> К стати, тут еще вопросик маленький возник: В VB цикле
> получаются некоторые данные. Требуется запизивать их в
> нужные поля. Как это лучше сделать?
Не знаю, как Аксес к этому отнесется (мелкомягкие всегда стремились как можно меньше придерживаться стандартов и вообще ;) ), но в других СУБД лучше всего в цикле сгенерировать многострочный запрос типа:
INSERT INTO `table_name` (`field_1`, `field_2`, ..., `field_n`) VALUES
('val_1','val_2', ..., 'val_n'),
...
('val_i','val_j', ..., 'val_k');

---
а потом отправить его в СУБД. Если цикл бесконечный - отправлять периодически, после накопления нужного количества строк, и обнулять его после отправки очередной порции.
<programming>
[Access SQL] как переименовать поле таблицы? А то очень не хочется извращаться. 10.03.11 23:17  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
В мускуле это выглядит, например, так: 11.03.11 11:16  
Автор: Fighter <Vladimir> Статус: Elderman
Отредактировано 11.03.11 11:26  Количество правок: 1
<"чистая" ссылка>
В мускуле это выглядит, например, так:
ALTER TABLE `vr` CHANGE `log` `log1` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

Только я не помню, Аксес ALTER TABLE понимает или нет.
Должно поддерживать, ибо alter лежит ещё в стандарте ANSI SQL 92, может быть и ранее. 11.03.11 16:32  
Автор: kstati <Евгений Борисов> Статус: Elderman
Отредактировано 11.03.11 16:36  Количество правок: 4
<"чистая" ссылка>
разделы 11.10 <alter table statement>, 11.12 <alter column definition>, ну и далее.

sql1992
Сразу трем топикам. 13.03.11 12:10  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 13.03.11 12:11  Количество правок: 1
<"чистая" ссылка>
Может делаю что не так, но перепробовал разные комбинации.
ALTER TABLE Table1 ALTER COLUMN FIELD1 FIELD2 TEXT(25);

---
Какой бы ни писал тип "TEXT", "CHAR", ... ругается на тип. Хотя, если убрать FIELD2, то тип меняет. Названия полей в кавычки брал. Слово "SET" между полями писал. То, что майэскуэль это делать точно умеет, знаю. В инете поиск ничего путевого не дает. В хелпе Аксесе этого нет. Ниже кусок Аксесовского хелпа. Похоже, что то, что возможно указать при добавлении поля (ИМЯ, ТИП, РАЗМЕР) невозможно указать при изменеии. То есть ИМЯ относится к имени самого поля, а остальное воспринимается как новые параметры (только ТИП и РАЗМЕР).
Синтаксис
ALTER TABLE таблица {ADD {COLUMN тип поля[(размер)] [NOT NULL]     [CONSTRAINT индекс] |
    ALTER COLUMN тип поля[(размер)] |
    CONSTRAINT составнойИндекс} |
    DROP {COLUMN поле I CONSTRAINT имяИндекса} }

---
Может нафиг этот запрос? Просто зайти в Аксесе в нужную таблицу и переименоавть ) 14.03.11 00:46  
Автор: Fighter <Vladimir> Статус: Elderman
<"чистая" ссылка>
так: 13.03.11 16:56  
Автор: Den <Денис Т.> Статус: The Elderman
Отредактировано 13.03.11 16:58  Количество правок: 2
<"чистая" ссылка>
так:
ALTER TABLE Table1
  ALTER COLUMN FIELD1 char(25)
  ALTER COLUMN FIELD2 char(25);

---


В Access или в SQL Manager'е ты можешь делать это визуально - в конструкторе таблицы.
Ошибка синтаксиса и подсвечивает alter на третьей строке. 14.03.11 00:32  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 14.03.11 00:34  Количество правок: 2
<"чистая" ссылка>
> так:
> ALTER TABLE Table1
>   ALTER COLUMN FIELD1 char(25)
>   ALTER COLUMN FIELD2 char(25);

---

Ошибка синтаксиса и подсвечивает ALTER на третьей строке.
Зачем во второй строке указывать тип и размерность переименовываемого поля FIELD1 и зачем это делать в третьей строке?

> В Access или в SQL Manager'е ты можешь делать это визуально
> - в конструкторе таблицы.

Задача: написать програмку, которая будет обрабатывать огроменйшую кучу всего посредством нажатия на одну кнопку. Поди, объясни этим клеркам, что надо куда то лезть и что-то где-то переименовывать.
"Ноги" этой задачи растут из процеса импорта данных, при котором либо именам полей присваивается абракадабра их первой строки, либо "F1", "F2", ..., "FN". К тому же есть готовые запросы-импортировщики. Просто раздать полям нужные имена, и дальше все, как по маслу. Перекинуть таблицу в другую с правильными именами полей, зачистив первую строку, проблема не большая, но, во первых, хочется красиво, а, самое гдавное, во вторых, хочется понять, не уже ли в Аксесе нет такого функционала!

К стати, тут еще вопросик маленький возник: В VB цикле получаются некоторые данные. Требуется запизивать их в нужные поля. Как это лучше сделать?
Не знаю, как Аксес к этому отнесется (мелкомягкие всегда... 14.03.11 03:08  
Автор: Fighter <Vladimir> Статус: Elderman
Отредактировано 14.03.11 03:10  Количество правок: 2
<"чистая" ссылка>
> К стати, тут еще вопросик маленький возник: В VB цикле
> получаются некоторые данные. Требуется запизивать их в
> нужные поля. Как это лучше сделать?
Не знаю, как Аксес к этому отнесется (мелкомягкие всегда стремились как можно меньше придерживаться стандартов и вообще ;) ), но в других СУБД лучше всего в цикле сгенерировать многострочный запрос типа:
INSERT INTO `table_name` (`field_1`, `field_2`, ..., `field_n`) VALUES
('val_1','val_2', ..., 'val_n'),
...
('val_i','val_j', ..., 'val_k');

---
а потом отправить его в СУБД. Если цикл бесконечный - отправлять периодически, после накопления нужного количества строк, и обнулять его после отправки очередной порции.
Блин, сейчас писал уточнения к задаче и, похоже, пришла красивая мысль. Завтра попробую. 14.03.11 23:41  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
У разных rdbms синтаксис sql может немного различаться. 14.03.11 01:54  
Автор: Den <Денис Т.> Статус: The Elderman
Отредактировано 14.03.11 10:18  Количество правок: 1
<"чистая" ссылка>
> Ошибка синтаксиса и подсвечивает ALTER на третьей строке.
> Зачем во второй строке указывать тип и размерность
> переименовываемого поля FIELD1 и зачем это делать в третьей
> строке?

кажись, я запятую пропустил.
попробуй следующие варианты:
ALTER TABLE Table1
   ALTER COLUMN FIELD1 char(25),
   ALTER COLUMN FIELD2 char(25);

---

или
ALTER TABLE Table1
   ALTER COLUMN FIELD1 char(25),
     FIELD2 char(25);

---

если используете MSSQL, то синтаксис такой:
http://msdn.microsoft.com/ru-ru/library/ms190273.aspx

> Задача: написать програмку, которая будет обрабатывать
> огроменйшую кучу всего посредством нажатия на одну кнопку.
> Поди, объясни этим клеркам, что надо куда то лезть и что-то
> где-то переименовывать.
> "Ноги" этой задачи растут из процеса импорта данных, при
> котором либо именам полей присваивается абракадабра их
> первой строки, либо "F1", "F2", ..., "FN". К тому же есть
> готовые запросы-импортировщики. Просто раздать полям нужные
> имена, и дальше все, как по маслу. Перекинуть таблицу в
> другую с правильными именами полей, зачистив первую строку,
> проблема не большая, но, во первых, хочется красиво, а,
> самое гдавное, во вторых, хочется понять, не уже ли в
> Аксесе нет такого функционала!

MS Access v14 предлагает достаточно широкие средства автоматизации, вплоть до сохранения и воспроизведения шагов импорта/экспорта и связывания из разных источников данных (ODBC, форматированый текст, XML, некоторые форматы MS Office)

> К стати, тут еще вопросик маленький возник: В VB цикле
> получаются некоторые данные. Требуется запизивать их в
> нужные поля. Как это лучше сделать?

сори, не телепат. ;)
Ругается на запятую. 14.03.11 23:28  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> кажись, я запятую пропустил.
> попробуй следующие варианты:
>
ALTER TABLE Table1>    ALTER COLUMN FIELD1 char(25),
>    ALTER COLUMN FIELD2 char(25);

---
> или
>
ALTER TABLE Table1>    ALTER COLUMN FIELD1 char(25),
>      FIELD2 char(25);

---

Ругается на запятую.

> если используете MSSQL, то синтаксис такой:
> http://msdn.microsoft.com/ru-ru/library/ms190273.aspx

Хороший хелп, все особенности рассмотрены, есть и про изменение типа и размерности, но про зменение имени нет ничего.
Я там еще порылся, потом в родном хелпе - есть переименовывание таблиц, запросов, всяких других объектов, но про поля нет ничего. Грустно. Ну нет, так нет, не так уж сильно придется извратнуться.
значит делай по отдельности 15.03.11 03:53  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка>
Alter table? 11.03.11 00:55  
Автор: Den <Денис Т.> Статус: The Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach