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

Вниз

Ограничено ли количество параметров в запросе?   Найти похожие ветки 

 
pavel_guzhanov ©   (2005-12-29 13:34) [0]

я задал этот вопрос в конце своего предыдущего топика, но мне кажется, что туда уже вряд ли кто заглянет, так что повторюсь:
есть какое-нибудь ограничение на количество параметров в запросе "Insert INTO"? У меня в запросе 17 параметров получается. Вроде запрос правильно составлен, с типами не напутал, а при выполнении выдается ошибка "Ошибка синтаксиса Insert Into" Может это быть из-за большого количества параметров?
запрос такой:
insert into Table1 (Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field10, Field11, Field12, Field13, Field14, Field15, Field16, Field17) values (:a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :l, :m, :n, :o, :p, :q)
далее
QInsert.Parameters[0].Value:=Q.Fields[0].AsInteger;  
QInsert.Parameters[1].Value:=MainForm.E1.Text;
QInsert.Parameters[2].Value:=1;
QInsert.Parameters[3].Value:=5;
QInsert.Parameters[4].Value:=StrToInt(MainForm.E2.Text);
QInsert.Parameters[5].Value:=MainForm.E3.Text;
QInsert.Parameters[6].Value:=0;
QInsert.Parameters[7].Value:=0;
QInsert.Parameters[8].Value:=0;
QInsert.Parameters[9].Value:=0;
QInsert.Parameters[10].Value:=0;
QInsert.Parameters[11].Value:=0;
QInsert.Parameters[12].Value:=1;  
QInsert.Parameters[13].Value:=1;
QInsert.Parameters[14].Value:=2;
QInsert.Parameters[15].Value:=3;
QInsert.Parameters[16].Value:=5;

Field2 и Field6 - текстовые, остальные числовые .

Не пойму, где тут ошибка синтаксиса...


 
pavel_guzhanov ©   (2005-12-29 13:35) [1]

забыл сказать. БД-Access, компоненты доступа к базе - ADO


 
Digitman ©   (2005-12-29 13:54) [2]

подключи SQL Monitor да посмотри результирующий текст запроса


 
pavel_guzhanov ©   (2005-12-29 14:15) [3]

sql monitor ничего не показывает... я где-то читал, что его используют только с серверными базами....


 
Digitman ©   (2005-12-29 14:20) [4]


> sql monitor ничего не показывает


а ты, чудо, где-нибудь упомянул в своем посте о том что ты НЕ используешь кл.-серв. СУБД ?

то что ты видишь (куак диагностика ошибки), явно не относится к исполняющей части - сформированный (с учетом факт.параметров) текст запроса явно не проходит "проверку на вшивость" уже на КЛИЕНТСКОЙ стороне.


 
Johnmen ©   (2005-12-29 14:24) [5]

>(:a, :b, :c, :d, :e, :f, :g, :h, :i, :j, :k, :l, :m, :n, :o, :p, :q)

Убери пробелы.


 
pavel_guzhanov ©   (2005-12-29 14:28) [6]


> а ты, чудо, где-нибудь упомянул в своем посте о том что
> ты НЕ используешь кл.-серв. СУБД ?



> pavel_guzhanov ©   (29.12.05 13:35) [1]
> забыл сказать. БД-Access, компоненты доступа к базе - ADO


 
pavel_guzhanov ©   (2005-12-29 14:32) [7]

пробелы убрал... не помогло


 
Johnmen ©   (2005-12-29 14:33) [8]

Как формируется текст запроса?


 
pavel_guzhanov ©   (2005-12-29 14:37) [9]


> Как формируется текст запроса?


 QInsert.Close;
 QInsert.SQL.Clear;
 QInsert.SQL.Add("insert into Groups (Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field10, Field11, Field12, Field13, Field14, Field15, Field16, Field17)");
 QInsert.SQL.Add(" values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q)");


 
Johnmen ©   (2005-12-29 14:44) [10]

Понятно.
Перед присвоением значений параметрам укажи их вид и типы.


 
pavel_guzhanov ©   (2005-12-29 14:50) [11]


> Перед присвоением значений параметрам укажи их вид и типы.

Извиняюсь за возможно глупый вопрос, но как это сделать?. Если так:
QInsert.Parameters[0].DataType:=....
то какой тип указывать? Integer, как в программе, или Числовой, как в акцессе? а также String или Текстовый?


 
Johnmen ©   (2005-12-29 14:54) [12]

список типов TFieldType + F1


 
pavel_guzhanov ©   (2005-12-29 15:02) [13]

Сделал так перед присвоение значений параметрам:
QInsert.Parameters[0].DataType:=ftInteger;
 QInsert.Parameters[1].DataType:=ftString;
 QInsert.Parameters[2].DataType:=ftInteger;
 QInsert.Parameters[3].DataType:=ftInteger;
 QInsert.Parameters[4].DataType:=ftInteger;
 QInsert.Parameters[5].DataType:=ftString;
 QInsert.Parameters[6].DataType:=ftInteger;
 QInsert.Parameters[7].DataType:=ftInteger;
 QInsert.Parameters[8].DataType:=ftInteger;
 QInsert.Parameters[9].DataType:=ftInteger;
 QInsert.Parameters[10].DataType:=ftInteger;
 QInsert.Parameters[11].DataType:=ftInteger;
 QInsert.Parameters[12].DataType:=ftInteger;
 QInsert.Parameters[13].DataType:=ftInteger;
 QInsert.Parameters[14].DataType:=ftInteger;
 QInsert.Parameters[15].DataType:=ftInteger;
 QInsert.Parameters[16].DataType:=ftInteger;


Не помогло((


 
Johnmen ©   (2005-12-29 15:12) [14]

Тогда ещё раз. Какая ошибка и на какой строке кода вылазит.


 
pavel_guzhanov ©   (2005-12-29 15:18) [15]

на строке
QInsert.ExecSQL;
появляется ошибка "Ошибка синтаксиса в инструкции INSERT INTO"


 
pavel_guzhanov ©   (2005-12-30 09:27) [16]

Блин, так и не разобрался((. Наплевал на все, и стал использовать ADOTable.


 
Johnmen ©   (2005-12-30 09:43) [17]

>Наплевал на все, и стал использовать ADOTable.

Это есть крайняя степень моветона.

Твой запрос синтаксических ошибок не имеет.
Попробуй
QInsert.Close;
QInsert.SQL.Text:="insert into Groups (Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field10, Field11, Field12, Field13, Field14, Field15, Field16, Field17) values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q)";


 
pavel_guzhanov ©   (2005-12-30 15:36) [18]

я так пробовал, и получил ошибку, что запрос имеет более 255 символов...


 
sniknik ©   (2005-12-30 15:46) [19]

> что запрос имеет более 255 символов...
обман... подлый обман. если посчитать символы в строке
> QInsert.SQL.Text:="insert into Groups (Field1, Field2, Field3, Field4, Field5, Field6, Field7, Field8, Field9, Field10,
> Field11, Field12, Field13, Field14, Field15, Field16, Field17) values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n,:o,:p,:q)";
то легко убедится что даже вся строка имеет длинну 244 символа, не говоря о запросе который будет меньше.

p.s. и как ты только терпиш этом мерзкий компилятор, который тебе так гнустно врет?


 
pavel_guzhanov ©   (2005-12-30 16:25) [20]

ну да, согласен, когда было сообщение о более чем 255 символов, у меня перед именами параметров были пробелы.... сейчас наверное такого не будет, но проверю это только 4 января - это у меня рабочий день.... Если ветка не уйдет слищком далеко, напишу, что получилось... Спасибо всем за помощь и с наступающим Новым Годом!



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

Форум: "Начинающим";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.041 c
14-1135668820
vidiv
2005-12-27 10:33
2006.01.22
модераторам


6-1128928666
Dmitry_05
2005-10-10 11:17
2006.01.22
Dial-UP соединение по умоланию


14-1135430256
AnD1
2005-12-24 16:17
2006.01.22
Передача парметров cgi-скрипту...


14-1136054592
Иксик
2005-12-31 21:43
2006.01.22
Ой ребята, какие вы все бухие! :))))


2-1136637637
Начинающий5
2006-01-07 15:40
2006.01.22
Dbgrid





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