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

Вниз

Почему команда Insert не работает в DELPHI (ADOQuery)   Найти похожие ветки 

 
Arazel ©   (2006-01-30 19:23) [0]

Хотя работает в Query Analyzer

Вот так  я делаю но  не чего не получается... :(
 ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add("INSERT INTO Warhouses (C_Name,C_Address,C_Phone,C_Manager)");
  ADOQuery1.SQL.Add("VALUES("Sclad¹3","33453","24345","5656561")");
  ADOQuery1.Open;


 
Ega23 ©   (2006-01-30 19:30) [1]


>   ADOQuery1.Open;


Команда Open подразумевает возврат набора данных.
У тебя же данные не возвращаются. Тебе ExecSQL надо делать.

З.Ы. Впредь текст ошибки приводи.


 
Arazel ©   (2006-01-30 20:01) [2]

Вот ошибка:

Debugger Exception Notification

Error Message
"The name "sclad?3" is not permitted in this contex.
Only constants, expressions, or variables allowed  here.
Column names are not permitted".


И  подскажите как правельно в  DELPHI выполнять запросы
то есть вместо " подставлять это " я так понял
и ещё вместо  Open или Active что  бы выполнить  надо ExecSQL
хотя  этои по  названию понятно :)


 
Johnmen ©   (2006-01-30 20:54) [3]

Кавычки не двойные, а удвоенные одинарные.


 
ivc_andr ©   (2006-01-31 12:22) [4]

ADOQuery1.Open предполагает, что запрос вернет данные, а у тебя происзодит вставка. Поставь вместо .Open что то типа .Exec или .ExecSQL я просто не помню


 
ivc_andr ©   (2006-01-31 12:24) [5]

Ega23 ©   (30.01.06 19:30) [1]

Упс....такой ответ уже был.
гы... провтыкал


 
Плохиш ©   (2006-01-31 12:36) [6]


> Arazel ©   (30.01.06 20:01) [2]

Ещё существуют параметры. TADOQuery.Params


 
msguns ©   (2006-01-31 13:20) [7]

Как надо делать (рыба):

with TADOCommand.Create(nil) do
 try
  Connection := ADOTable1(или чего там законнекчено уже).Connection;
  CommandText := "INSERT INTO Warhouses      
       (C_Name,C_Address,C_Phone,C_Manager) VALUES(:n,:a,:p,:m)";
  Parameters.ParamByName("n").Value := "Sclad¹3";
  Parameters.ParamByName("a").Value := "33453";
  Parameters.ParamByName("p").Value := "24345";
  Parameters.ParamByName("m").Value := "5656561";
  try
    Execute;
  except
    ShowMessage("Ошибка !");
  end;
 finally  
  Free;
 end;


 
msguns ©   (2006-01-31 13:21) [8]

>Плохиш ©   (31.01.06 12:36) [6]

Врать не надо ;)


 
Плохиш ©   (2006-01-31 14:23) [9]


> msguns ©   (31.01.06 13:21) [8]

Ой, да ладно, ну взял название из TSQLQuery, кто ж виноват, что у разных собак, одинаковые кости по разному называются :-)


 
kot137 ©   (2006-02-03 13:05) [10]


> msguns ©   (31.01.06 13:20) [7]
> Как надо делать (рыба):
>
> with TADOCommand.Create(nil) do
>  try
>   Connection := ADOTable1(или чего там законнекчено уже).
> Connection;
>   CommandText := "INSERT INTO Warhouses      
>        (C_Name,C_Address,C_Phone,C_Manager) VALUES(:n,:a,
> :p,:m)";
>   Parameters.ParamByName("n").Value := "Sclad¹3";
>   Parameters.ParamByName("a").Value := "33453";
>   Parameters.ParamByName("p").Value := "24345";
>   Parameters.ParamByName("m").Value := "5656561";
>   try
>     Execute;
>   except
>     ShowMessage("Ошибка !");
>   end;
>  finally  
>   Free;
>  end;

Подскажите пожалуйста, что делать. У меня в таблице 45 столбцов. И дельфи по такой схеме ругается: CommandText - должна быть переменная до 255 символов. У меня больше. Как это можно обойти?


 
msguns ©   (2006-02-03 13:20) [11]

property CommandText: WideString;


 
Shirson ©   (2006-02-03 13:21) [12]

Какой именно ошибкой она ругается?
CommandText имеет тип WideString ~2^30 символов.

Я никогда не пользуюсь ничем кроме TADOQuery, и выполняючерез него килобайтный скрипты. Об ограничении в 255 символов слышу впервый раз.


 
kot137 ©   (2006-02-03 14:11) [13]


> Какой именно ошибкой она ругается?

Ругается так: String literals may have at most 255 elements


 
Плохиш ©   (2006-02-03 14:15) [14]


> kot137 ©   (03.02.06 14:11) [13]

У меня есть такое наивное желание увисеть код, на который ругается.


 
kot137 ©   (2006-02-03 14:18) [15]


> У меня есть такое наивное желание увисеть код, на который
> ругается.

           CommandText:= "INSERT INTO all (f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32 ,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,a1,a2) VALUES(:qf2,:qf3,:qf4,:qf5,:qf6,:qf7,:qf8,:qf9,:qf10,:qf11,:qf12,:qf12,:qf13,:qf14,:qf15,:qf16,:qf17,:qf18,:qf19,:qf20,: qf21,:qf22,:qf23,:qf24,:qf25,:qf26,:qf27,:qf28,:qf29,:qf30,qf31,qf32,:qf33,:qf34,:qf35,:qf36,:qf37,:qf38,:qf39,:qf40,:qf 41,:qf42,:qa1,:qa2)";


 
Johnmen ©   (2006-02-03 14:21) [16]

CommandText:= "INSERT INTO all (f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32  ,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,a1,a2) "+"
VALUES(:qf2,:qf3,:qf4,:qf5,:qf6,:qf7,:qf8,:qf9,:qf10,:qf11,:qf12,:qf12,:qf13,:qf14,:qf15,:qf16,:qf17,:qf18,:qf19,:qf20,:  "+
"qf21,:qf22,:qf23,:qf24,:qf25,:qf26,:qf27,:qf28,:qf29,:qf30,qf31,qf32,:qf33,:qf34,:qf35,:qf36,:qf37,:qf38,:qf39,:qf40,:q f 41,:qf42,:qa1,:qa2)";


А вообще, это бардак....


 
kot137 ©   (2006-02-03 14:26) [17]


> Johnmen ©   (03.02.06 14:21) [16]

Спасибо. Получилось.


> А вообще, это бардак....

Подругому можно как-то это сделать? Меня такой код тоже не радует.


 
msguns ©   (2006-02-03 14:36) [18]

>Shirson ©   (03.02.06 13:21) [12]
>Я никогда не пользуюсь ничем кроме TADOQuery

И напрасно


 
Shirson ©   (2006-02-03 15:40) [19]

>msguns ©
>И напрасно

(Ответ в том же стиле)
Нет, не непрасно.



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

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

Наверх





Память: 0.5 MB
Время: 0.038 c
2-1138833851
BREVIS
2006-02-02 01:44
2006.02.19
Как разбить (TColor) цвет на RGB составляющие?


8-1126270480
Nick Denry
2005-09-09 16:54
2006.02.19
Можно ли средсвами TMediaPLayer


15-1138250776
begin...end
2006-01-26 07:46
2006.02.19
С Днём рождения! 26 января


3-1134878044
atruhin
2005-12-18 06:54
2006.02.19
Передается ли блоб на клиента из процедуры


15-1138275294
dzmitry[li]
2006-01-26 14:34
2006.02.19
Pinnacle Studio Plus





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