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

Вниз

Помогите с SQL - INSERT,   Найти похожие ветки 

 
Wood   (2007-05-11 10:43) [0]

пожалуйста.
Delphi->ADO->MS Access
поле [0] (NUM) индексированное с первичным ключем, тип - счетчик.
поле [1] (name_k) - текстовое.

INSERT INTO mybase (num,name_k) VALUES (:num,:name_k);
ADOCommand.Parameters.Clear;
ADOCommand.Parameters.CreateParameter("num",ftAutoInc, pdInput, -1, <что здесь указать?>);
ADOCommand.Parameters.CreateParameter("name_k",ftString,pdInput, -1, "Имя");
...

вообщем, по моему, я неправильно делаю.. Значение поля num еще не определено..
Подскажите, как правильно выполнить вставку записи при использовании поля, типа "счетчик".
Заранее благодарю.


 
Sergey13 ©   (2007-05-11 10:47) [1]

> [0] Wood   (11.05.07 10:43)
> INSERT INTO mybase (num,name_k) VALUES (:num,:name_k);

ну так раз счетчик, зачем ты в него пишешь?
INSERT INTO mybase (name_k) VALUES (:name_k)


 
Wood   (2007-05-11 11:02) [2]


> Sergey13 ©   (11.05.07 10:47) [1]

Спасибо!

INSERT INTO mybase (name_k) VALUES (:name_k);
ADOCommand.Parameters.Clear;
ADOCommand.Parameters.CreateParameter("name_k",ftString,pdInput, -1, "Имя");

целиком так, правильно?


 
Johnmen ©   (2007-05-11 11:52) [3]


> целиком так, правильно?

Нет.
Две последнии строки ни к селу ни к ж..е :)))


 
Wood   (2007-05-11 12:00) [4]


> Johnmen ©   (11.05.07 11:52) [3]
>
> Нет.
> Две последнии строки ни к селу ни к ж..е :)))
>

почему? Не могли бы вы объяснить? А еще лучше показать на примере, как  правильно.
Кстати, почему именно неправильно? Может быть не целесообразно, скорее?
А если будет

ADOCommand.Parameters.CreateParameter("name_k",ftString,pdInput, -1, <здесь имя переменной>);

то так правильно?
Если у меня параметры создаются динамически и я не знаю пока, сколько их будет?...


 
Johnmen ©   (2007-05-11 12:09) [5]

ADOCommand.CommandText:="INSERT INTO mybase (name_k) VALUES (:name_k);
всё, коллекция параметров создана. заново.

> Если у меня параметры создаются динамически и я не знаю
> пока, сколько их будет?...

Это знает текст запроса.


 
ЮЮ ©   (2007-05-11 12:11) [6]

>Если у меня параметры создаются динамически и я не знаю пока, сколько их будет?...

Их будет ровно столько, сколько в тексте запроса встретится комбинация :<параметр>. А если бы их там не было, то к чему ADOCommand.Parameters.Clear;?


 
Desdechado ©   (2007-05-11 12:12) [7]

Обычно проще включить свойство ParamCheck, что вызывает автоматическое создание параметров по символу двоеточия в тексте запроса.
И незачем лепить их вручную.
И динамически их создастся столько, сколько двоеточий в запросе.


 
Wood   (2007-05-11 12:15) [8]

Ох-хо!! Надеюсь, я правильно понял!
Так к примеру:

ADOCommand.CommandText:="INSERT INTO mybase (name_k) VALUES (:name_k);
ADOCommand.Parameters[0].Value:=<var name>

и не нужно ADOCommand.Parameters.Clear!


 
Ega23 ©   (2007-05-11 12:22) [9]


> ADOCommand.Parameters[0].Value:=<var name>


В принципе правильно. Но лично я предпочитаю через ParamByName обращаться.


 
Johnmen ©   (2007-05-11 12:25) [10]


> Wood   (11.05.07 12:15) [8]

Правильно.
Хотя иногда неплохо бы ещё перед присваивание значения
ADOCommand.Parameters.ParamByName(...).DataType:=...


 
ЮЮ ©   (2007-05-11 12:33) [11]

> Правильно.
> Хотя иногда неплохо бы ещё перед присваивание значения
> ADOCommand.Parameters.ParamByName(...).DataType:=...


Если значение параметру присваивается, то и тип присвоится, если справа все правильно.
А вот для неприсвоенных - тип, ИМХО, гораздо важнее.


 
Anatoly Podgoretsky ©   (2007-05-11 13:18) [12]

> Wood  (11.05.2007 12:00:04)  [4]

Как это не знаешь, как же
тогда создаешь.
Для присвоения параметров
используй

ADOCommand.Parameters.ParamByName


 
Anatoly Podgoretsky ©   (2007-05-11 13:19) [13]

> Wood  (11.05.2007 12:15:08)  [8]

Если ты изменишь запрос, то
твой Parameters[0]. вполне полетит к
черту.


 
Wood   (2007-05-11 13:43) [14]

Спасибо всем за помощь! :)



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

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

Наверх




Память: 0.47 MB
Время: 0.053 c
2-1178584148
dreamse
2007-05-08 04:29
2007.05.27
Подскажите функцию стандартную для проверки и добавления


15-1178039529
Scaltro
2007-05-01 21:12
2007.05.27
Помогите, очень нужент крак к программе Actual Title Buttons 4.3


15-1177630671
SerJaNT
2007-04-27 03:37
2007.05.27
.htaccess


3-1173524269
@dimon
2007-03-10 13:57
2007.05.27
Копирование Базы SQL SERVER 2000


15-1177698597
koha
2007-04-27 22:29
2007.05.27
Можно ли к форуму подключать какой нибудь другой программой?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский