Форум: "Начинающим";
Текущий архив: 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.49 MB
Время: 0.05 c