| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > SQL |
| Автор: Spawn 19.8.2002, 20:40 |
| Привет всем, кто меня еще помнит)))Сейчас нет возможности часто посещать этот форум,так как внешка((( Но вот у меня возник один вопрос: делаю я для себя программу схожую с ISQ(так как аська внешка) для общения с несколькими челами в Е-бурге. При регистрации нового пользователя хочу сохранять даныые о нем в базе данных(причем решил попробовать с TQuery): case ConnFlag^ of 0:begin ... end; 1:begin StatusBar1.SimpleText:='Ïîïûòêà ðåãèñòðàöèè êëèåíòà ñ ñîåäèíåíèåì: '+Copy (Recevtext^,2,Length(RecevText^)); if Query1.Active then begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('INSERT INTO Messager(Name) Values("lala")'); Query1.Open; end; end; end; Так пишет, что произошла ошибка создания дескриптора курсора. Пробовал и так: Query1.Insert; Query1.ParamByName('Name').AsString:=UOM_NAME; Query1.Post; где UOM_NAME-имя пользователя, пытающегося зарегистрироваться на сервере(Поступает от клиента). В этом случае пишет, что таблица находится в режиме ReadOnly, хотя у компонента TQuery я не нашел такого параметра((( Подскажите, пожалуйста, что можно сделать. А то без аськи неудобно как-то. |
| Автор: Fantasist 20.8.2002, 06:42 |
| Query1.SQL.Text:='INSERT INTO Messager(Name) Values("lala")'; Query1.ExecSQL; Двойные кавычки, тоже понимаются не всеми субд правильно, поэтому может надо заключить строковое значение в апострофы. |
| Автор: Vit 20.8.2002, 07:13 |
| А что за база данных? |
| Автор: adminlion 23.8.2002, 02:30 |
| Когда выполняется запрос DDL (dinamic.....) то нужно писать ExecSQL а не Open. Open пытается вернуть курсор, котрого не может и быть при инсерте |
| Автор: Spawn 23.8.2002, 14:45 |
| База данных Paradox. А возможно ли как-нибудь связать SQL-запрос c переменной? Насколько я понял, это надо делать через параметрические запросы, на что указывает двоеточие перед параметром(например: WHERE ID=:IDParam), но если я пытаюсь поставить параметр в такой запрос: INSERT INTO Messager(Name) VALUES(:Name), то выдает ошибку! -------------------------------------------------------------- И возможно ли присвоить результат запроса переменной?? Например, я хочу найти максимальное значение идентификатора пользователя: SELECT MAX(ID) FROM Messager и хочу присвоить результат переменной(например MAXID:integer). |