Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2008, 19:10   #1
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию помогите исправить запрос

sql:='INSERT INTO NOKIA (JOBCARDNO, SYMP_ID, DEF_ID, WORKS ,'+
' NCODE, NREF1, NPART1, NUSED1, NREF2, NPART2, NUSED2,'+
' NREF3, NPART3, NUSED3, SWVER, SWVERNEW, HWVER, HWVERNEW) VALUES ('+quotedstr(edit4.Text)+
' ,'''', '''', ''RT'', '''', '''', '''', ''F'', '''', '''', '+
' ''F'', '+quotedstr(edit1.Text)+', '''', ''F'', '''', '''', '''', '''')';

затем следует

Base.execSQL
затем IBTransaction.commit

и ошибка
Yuran вне форума Ответить с цитированием
Старый 16.07.2008, 07:57   #2
edgy
Форумчанин
 
Регистрация: 15.06.2008
Сообщений: 271
По умолчанию

А поподробней - про ошибку?
edgy вне форума Ответить с цитированием
Старый 22.07.2008, 19:08   #3
shosse
Пользователь
 
Регистрация: 22.07.2008
Сообщений: 12
Радость

Запросы в SQL пишутся с использованием знака апостроф ('), а не ковычек.

Например:
s,i,sqlstr:string;

Запрос будет выглядеть так:

sqlstr:='INSERT INTO NOKIA (JOBCARDNO, SYMP_ID) VALUES ('+char(39)+s+char(39)+','+char(39) +i+char(39)+')';

Вот так будет работать...
shosse вне форума Ответить с цитированием
Старый 25.07.2008, 14:06   #4
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию

А у меня и не кавычки, а четыре апострофа!
я их заменил на +Quotedstr('')+
все равно не работает. Только эту ошибку сложно поймать в силу специфики работы программы. Как выскачит, я напишу про нее!
Yuran вне форума Ответить с цитированием
Старый 25.07.2008, 15:24   #5
rubi
Пользователь
 
Регистрация: 01.09.2007
Сообщений: 35
По умолчанию

Во-первых, могу посоветовать прогнать запрос в конструкторе запросов в IDExpert (или что там есть для работы с БД). Может быть, ошибка в самом запросе. А лучше делай по другому. Связываешь IBQuery с IBIpdateSQL(точно названия не помню, делфы под рукой нет) - просто в свойствах IBQuery. Настраиваешь IBIpdateSQL на нужную таблицу и айбиквери на нее же. Потом добавляешь LookUp-поля для квери. В коде пишешь примерно так:
IBQuery1.Close;
IBQuery1.Open;
IBQuery1.Edit;
IBQuery1JOBCARDNO.Value := 1;//т.е свое значение конечно
IBQuery1Symp_ID.Value := 1;//
//здесь также продолжаешь присваивать значения для всех полей
после этого просто пишешь
IBQuery1.Post;
Если не ошибаюсь именно так это и делается. Но вообще лучше просто пропиши SQL-скрипт в БД как хранимую процедуру а потом вызывай на нее из делфы комманду с параметрами. будет проще и надежнее.
rubi вне форума Ответить с цитированием
Старый 25.07.2008, 18:59   #6
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию

rubi, Вуду пробовать. Спасибо

Так а если в таблице записи нет воодще, этот код Добавит ее или нет?
Yuran вне форума Ответить с цитированием
Старый 26.07.2008, 14:14   #7
Yuran
Форумчанин
 
Регистрация: 18.02.2008
Сообщений: 198
По умолчанию

Ага я поймал ошибку
с тем запросом что был у меня (где +quotedstr('')+ )
ошибка такая
Deadlock
update conflicts with concurrent update
Yuran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить код Tanuska___:) БД в Delphi 4 07.08.2008 17:40
Помогите исправить L_M Помощь студентам 3 08.06.2008 01:06
Помогите исправить NeiL Общие вопросы C/C++ 1 31.05.2008 13:31
Помогите исправить код student_63 Помощь студентам 5 13.12.2007 18:20