Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Error converting data type varchar to numeric 
:(
    Опции темы
Gava
Дата 5.2.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.2.2007

Репутация: нет
Всего: нет



Код

procedure TFormDobUS.Button1Click(Sender: TObject);
var usID,spID:char;
begin
  ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')';
  ADOQuery1.ExecSQL;
  ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
  ADOQuery1.ExecSQL;
end;


на строчке 6 и выдается такая ошибка...( Error converting data type varchar to numeric)
В SQL query analyzer строчка 
Код

update users set vse=vse+1 where userid=1

проходит на ура
что такое??
PM MAIL ICQ   Вверх
Savek
Дата 5.2.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Цитата(Gava @  5.2.2007,  12:16 Найти цитируемый пост)
ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')';

Скорее всего ошибка здесь
PM MAIL   Вверх
Gava
Дата 5.2.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.2.2007

Репутация: нет
Всего: нет



нет
если не приписывать строки 
Код
  ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
  ADOQuery1.ExecSQL;

то все работает
у меня такое ощущение что это от 2х  ADOQuery1.ExecSQL;
PM MAIL ICQ   Вверх
Данкинг
Дата 5.2.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



В базе с пустыми полями (или NULL) как?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Gava
Дата 5.2.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.2.2007

Репутация: нет
Всего: нет



нее ну все поля заполненыsmile
PM MAIL ICQ   Вверх
Данкинг
Дата 5.2.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А если очистку сделать?
Код


ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')';
 ADOQuery1.ExecSQL;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
ADOQuery1.ExecSQL;




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Gava
Дата 5.2.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.2.2007

Репутация: нет
Всего: нет



неа...тоже самое блин...
причем: ситуация такая что если в теле процедуды это-
Код

ADOQuery1.SQL.Text:='insert users Values('''+edit1.Text+''','''+edit2.Text+''')';
ADOQuery1.ExecSQL; 

то она безошибочно работает
если 2-ая часть
Код

ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
ADOQuery1.ExecSQL;

то она тоже работает нормально... когда пишу вместе - ошибка....

PM MAIL ICQ   Вверх
Данкинг
Дата 5.2.2007, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ну, попробуй кверю закрыть перед вторым запросом...

Код

ADOQuery1.close;




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Gava
Дата 5.2.2007, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 4.2.2007

Репутация: нет
Всего: нет



smile финиш... блииииииииииииииииииин... не работает

Добавлено @ 13:05 
 smile ехху! кароче текст программы должен быль таков: 
Код

procedure TFormDobUS.Button1Click(Sender: TObject);
var usID,spID:char;
begin
  ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')';
  //ADOQuery1.ExecSQL; - вот это нафиг:)
  ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
  ADOQuery1.ExecSQL;
end;

PM MAIL ICQ   Вверх
Данкинг
Дата 5.2.2007, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ну, млин... Могу ещё предложить изменить

Код

ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';


на

Код

ADOQuery1.SQL.ADD ('update users set vse=vse+1 where userid=1');


А так - ищи, почему происходит попытка чар засунуть в нумерик....

Гы! А вот моим способом попробуй, только exec не убирай. Должно получиться... smile 

Это сообщение отредактировал(а) Данкинг - 5.2.2007, 13:12


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Savek
Дата 5.2.2007, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 355
Регистрация: 10.4.2006
Где: Воронеж

Репутация: 7
Всего: 7



Код

Button1Click(Sender: TObject);
var usID,spID:char;
begin
//ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')'; тогда это тоже нафиг, оно все равно сразу же затирается
//ADOQuery1.ExecSQL; - вот это нафиг:)
ADOQuery1.SQL.Text:='update users set vse=vse+1 where userid=1';
ADOQuery1.ExecSQL;
end;

PM MAIL   Вверх
CatATonik
Дата 5.2.2007, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: нет
Всего: 8



Код

ADOQuery1.SQL.Text:='insert users Values('''+edit14.Text+''','''+edit1.Text+''')';


А ты уверен что Edit14 и Edit1 создержат числовые значения? Вообще какой тип полей? Похоже что сначала записывается в текстовое поле, а потом MSSQL не может конвертировать в текст в число. Посмотри что в базу записалосьто после первого Exec.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1177 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.