![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
есть такой вот кусок кода:
Код:
with DataModule1.Query1 do
begin
Parameters.ParamByName('param1').Value :=ComboBox1.Text;
Parameters.ParamByName('param2').Value :=ComboBox2.Text;
Parameters.ParamByName('param3').Value :=ComboBox3.Text;
execSql;
end;Вылезает ошибка "Приложение использует для текущей операции значение неверного типа." Объясните пожалуйста, что тут не так. Не могу понять, чем тут типы то не угодили... sql скрипт просто в базу добавляет записи insert`ом. Последний раз редактировалось Admin, 13.12.2010 в 13:39. |
|
#2
|
||||
|
||||
|
Кавычки однако нужны...
|
|
#3
|
|||
|
|||
|
где они нужны? Параметры у меня в кавычках.
|
|
#4
|
||||
|
||||
|
Текст запроса покажите. Обычно такая ошибка происходит когда пытаются сцепить текст и число или при сравнении ожидается текст, а передается неизвестная константа.
|
|
#5
|
||||
|
||||
|
Цитата:
Код:
Parameters.ParamByName('param1').Value := #39+ComboBox1.Text+#39;Последний раз редактировалось movnet, 13.12.2010 в 18:36. |
|
#6
|
||||
|
||||
|
я вообще не знаю у TQuery (судя по имени Query1) свойства "Parameters" (Delphi 3-Delphi 7)
есть Params: TParams! а классический механизм выполнения SQL запроса, не возвращающего набор данных (cursor):Код:
with Query1 do
begin
Prepare;
ParamByName('Param1').AsString:=Caption;
ParamByName('Param2').AsInteger:=Tag;
ParamByName('Param3').AsBoolean:=Visible;
ExecSQL;
end; |
|
#7
|
|||
|
|||
|
текст запроса проще некуда:
SQL Код:
INSERT INTO Table1(field1,field2) VALUES(:param1,:param2) ничего из выше перечисленного не заставило ошибку изчезнуть(((( Может есть еще какие нибудь варианты решения? |
|
#8
|
|||
|
|||
|
Цитата:
А на такое вообще Delphi 7 изругалась. Сказало, что Prepare и ParamByName неопределенные переменные. |
|
#9
|
||||
|
||||
|
Цитата:
http://data.cod.ru/79774 Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables;
type
TForm1 = class(TForm)
Query1: TQuery;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
with Query1 do
begin
Prepare;
ParamByName('Param1').AsString:=Caption;
ParamByName('Param2').AsInteger:=Tag;
ParamByName('Param3').AsBoolean:=Visible;
ExecSQL;
end;
end;
end. |
|
#10
|
|||
|
|||
|
возникло недопонимание
Я исплользую TADOQuery. А то что скинули Вы, откомпилировалось нормально.Последний раз редактировалось nanometr, 14.12.2010 в 11:28. |
|
#11
|
|||
|
|||
|
А поля в базе в которые пишите все стринговые?
|
|
#12
|
||||
|
||||
|
-удали это компонент TADOQuery из TDataModule и добавь новый TADOQuery
-назови также, чтобы код не переписывать -задать свойству Connection соотв. компонент TADOConnection -TADOConnection сделать Connected = True -в свойство SQL впиши свой запрос "insert into..." -пробовать запустить |
|
#13
|
|||
|
|||
|
Поля все стринговые в базе.
Сейчас попробую удалить компонент и занова все сделать.. Хотя я так уже пробывал пару раз, не помогло. |
|
#14
|
|||
|
|||
|
и снова не помогло. я подумываю весь дата модуль убить с заного сделать может..
В чем может быть проблема? Не понимаю. |
|
#15
|
||||
|
||||
|
в дизайнере щелкни на свойство Parameters и смотри какие типы у параметров (DataType). можно попробовать всем сделать ftWideString.
|