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

Вниз

TAdoCommand и параметры   Найти похожие ветки 

 
x_x_x   (2003-12-10 12:42) [0]

AdoCommand.ConnectionString := "Provider=MSDASQL.1;Persist Security Info=False;Data Source=файлы dBASE;Initial Catalog=x:\xxx\xx";
AdoCommand.CommandType := cmdText;
AdoCommand.CommandText := "UPDATE SomTable SET F1 = :F1, F2 = :F2 WHERE F3 = :F3";
AdoCommand.Parameters.Clear;
AdoCommand.Parameters.CreateParameter("F1", ftString, pdInput, 20, null)
AdoCommand.Parameters.CreateParameter("F2", ftString, pdInput, 20, null)
AdoCommand.Parameters.CreateParameter("F3", ftString, pdInput, 20, null)
AdoCommand.Parameters[1].Value = "fff1";
AdoCommand.Parameters[1].Value = "fff2";
AdoCommand.Parameters[1].Value = "fff3";
AdoCommand.Execute;

Запись с полем fff3 заведомо есть. Смотрю значения параметров - все как и хотелось, НО апдейта не происходит.
ПОЧЕМУ?
КАК посмотреть обработанный запрос, который Execute ;))
СПАСИБО


 
x_x_x   (2003-12-10 12:43) [1]

Поправка
AdoCommand.Parameters[1].Value = "fff1";
AdoCommand.Parameters[2].Value = "fff2";
AdoCommand.Parameters[3].Value = "fff3";


 
Silver Alex   (2003-12-10 12:58) [2]


> AdoCommand.Parameters.Clear;
> AdoCommand.Parameters.CreateParameter("F1", ftString, pdInput,
> 20, null)
> AdoCommand.Parameters.CreateParameter("F2", ftString, pdInput,
> 20, null)
> AdoCommand.Parameters.CreateParameter("F3", ftString, pdInput,
> 20, null)

а зачем это?


 
x_x_x   (2003-12-10 13:53) [3]

Для того чтобы контролировать параметры. Например если я буду вызывать ХП (не из dBase конечно), то как обойтись без явного описания параметров?


 
Silver Alex   (2003-12-10 14:12) [4]

ну посмотри что ты делаешь, сначала убиваешь все параметры
AdoCommand.Parameters.Clear;
а потом по новой добавляешь.Убери этот кусок не нужен он и попробуй без него.И пиши не
AdoCommand.Parameters[1].Value
а
AdoCommand.Parameters.ParamByName("f1").Value


 
Плохиш_   (2003-12-10 14:13) [5]

>x_x_x (10.12.03 12:43) [1]

> Поправка
> AdoCommand.Parameters[1].Value = "fff1";
> AdoCommand.Parameters[2].Value = "fff2";
> AdoCommand.Parameters[3].Value = "fff3";


Хм, а что индексы теперь не с 0 начинаются?


 
x_x_x   (2003-12-10 16:02) [6]

Про индексы согласен, в реальности они с нуля...
По поводу AdoCommand.Parameters.Clear я писал - продиктовано необходимостью. Данный пример сильно упрощен для простоты восприятия. На самом деле вокруг добавления параметра обертка, но это отсупление от темы.
Вопрос в том что например
AdoCommand.CommandText := "INSERT INTO SomTable (F1, F2, F3) VALUES (:F1, :F2, :F3)";
AdoCommand.Parameters.Clear;
AdoCommand.Parameters.CreateParameter("F1", ftString, pdInput, 20, null)
AdoCommand.Parameters.CreateParameter("F2", ftString, pdInput, 20, null)
AdoCommand.Parameters.CreateParameter("F3", ftString, pdInput, 20, null)
выполняется на ура.
И как отмечалось если при трассировке посмотреть значения параметров до Execute, то они те что нужно.
И очень интересно как всетаки посмотреть ЧТО он Execute ???


 
sniknik   (2003-12-10 17:14) [7]

x_x_x (10.12.03 12:42)
странное применение

или так
AdoCommand.ParamCheck:= true; {default}
AdoCommand.CommandText := "INSERT INTO SomTable (F1, F2, F3) VALUES (:F1, :F2, :F3)";
AdoCommand.Parameters[0].Value = "fff1"; {или по имени}
AdoCommand.Parameters[1].Value = "fff2";
AdoCommand.Parameters[2].Value = "fff3";
AdoCommand.Execute;

или так
AdoCommand.ParamCheck:= false;
AdoCommand.CommandText := "INSERT INTO SomTable (F1, F2, F3) VALUES (?, ?, ?)";
AdoCommand.Parameters.CreateParameter("F1", ftString, pdInput, 20, "fff0");
AdoCommand.Parameters.CreateParameter("F2", ftString, pdInput, 20, "fff1");
AdoCommand.Parameters.CreateParameter("F3", ftString, pdInput, 20, "fff2");
AdoCommand.Execute;

а обьеденять то зачем?

> И очень интересно как всетаки посмотреть ЧТО он Execute ???
function Execute(var RecordsAffected: Integer; const Parameters: OleVariant): _RecordSet; overload;
не заметил она таки функция, а значится чтото возвращает. а вар параметр RecordsAffected количество обработанных строк показывает...



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

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

Наверх





Память: 0.46 MB
Время: 0.011 c
3-25190
kpx
2003-12-12 16:24
2004.01.09
Как узнать имя таблицы


6-25496
zhizhko
2003-11-10 11:14
2004.01.09
Заполнение формы в браузере


1-25337
madm
2003-12-18 17:35
2004.01.09
Как создать объект с помощью OleCreate???


1-25424
IvanVin
2003-12-24 09:06
2004.01.09
Компонент


3-25263
3LoBit
2003-12-08 14:30
2004.01.09
Странное выполнение OnCalcFields в TSQLQuery





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