Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Здравствуйте все, объясните мне пожалуйста простую истину: Как сгенерировать SQL запрос, чтоб м нем использовались значения, которые вводятся в Edit1.Text Типа: Допустим я в Edit1.Text ввёл Петя. И мне нужно что-то наподобие insert into people(name) values(Edit1.Text); Объясните пожалуйста суть или дайте ссылочку, где это прочитать. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:17 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
'insert into people(name) values('+chr(39)+Edit1.Text+chr(39)+');' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:19 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
А вообще для этих целей существую параметры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:20 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Благодарю, а для чего chr(39)? Это код символа ' ? А нет ли какого-нибудь другого способа? Если у меня много параметров необходимо добавлять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:21 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
А как это сделать с помошью параметра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:22 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Благодарю, а для чего chr(39)? Это код символа ' ? chr(39)-это кaвычки. На счет параметров, пока почитай пожалуйста в справке. Извини, сейчас просто очень занят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 11:38 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Надо это дело в FAQ по Дельфи запулит. При сборке строки запроса, при передачи текстового параметра в строку всегда используйте функции QuotedSt AnsiQuotedSt ADOCommand1.commandText:='insert into people(name) values('+QuotedSt(Edit1.Text)+');' ADOCommand1.commandText:=insert into people(name) values('+AnsiQuotedSt(Edit1.Text,'''')+');' Если использовать параметры, то сия штуковина будет выглядеть так ADOCommand1.commandText:='insert into people(name) values(:EDIT1);' ADOCommand1.Parameters.ParamValues['EDIT1']:=Edit1.Text; Возможно я ошибся в предыдущей строке :), так я не стороник подхода с использованием параметров и никогда его не применяю. И связано это с тем, что я работаю со SQL-сервером, поддерживающим хранимые процедуры. Если ХП нет, то использование параметров может дать некоторое преимущество, если сервер базы поддержиает PREPARE, т.е. запрос компилится при загрузке приложения, а потом выполняется без разборки с разными параметрами. Честно говоря, я не знаю баз ISAM, которые бы это делали. Вроде бы Paradox имеет какие-то функции оптимизации, но кроме общих фраз в документации об этом не сказано. Да и то, это должно работать только при работе через BDE. ODBC для парадокса поддерживает только версию Paradox 5, в то время как Дельфя работает с форматом Paradox 7. В моей программе это бы выглядело так ADOCommand1.commandText:='Execute insertPeople ' +QuotedSt(Edit1.Text) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 13:46 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Господа, по моему это извращение, при генерации запроса использовать chr(39), ведь если почитать хелп по дельфи, то можно вот такое найти: Код: plaintext Проще говоря, если поставить два раза по кавычке '', то получится одна единственная в поле вывода :)... Пример: Код: plaintext Вот так-то... 2Cat2 Интересно, надо будет и твой способ юзануть :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 13:57 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
ну ну а кто то это отменял ? edit1.text := ''I don''t ...''; // выведет: 'I don't ...' :o) точно непомню или три ''' ли две ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 14:22 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
А у тебя какая дельфя??? Просто по твоему примеру она х*й что выведет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2003, 14:27 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
На вкус и цвет товарищей нет ! с/у Малой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 02:41 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
2maloi_alex Ты это к чему??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 02:48 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Да к вот этому :) Господа, по моему это извращение, при генерации запроса использовать chr(39), ведь если почитать хелп по дельфи, то можно вот такое найти: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 02:58 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Ааа... Ну, просто по этому способу надо меньше вводить :), а результат получается такой-же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 03:05 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
SQL строка такая: select * from Employees where LastName=:mylastname :mylastname - это твоя переменная, которую будешь передавать через строчку Parameters[0].Value := Edit.text; а так пишешь внутри процедуры, завязываешь старт этого куска на кнопку with qEmployees do begin DisableControls; Close; Parameters[0].Value := Edit.text; Prepared := True; Open; EnableControls; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 04:16 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
точнее Parameters[0].Value := QuotedStr(Edit.text); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 04:19 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Вообще куда-то в сторону ушли... К Selectaм всяким :( А вот такой кусок кода не лучше? Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 04:24 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
ScableR Не лучше, а точно такой же ошибочный. Подумайте, Что будет, если в Edit1.Text ввести строку c одиночной кавычкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 11:46 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
НУ.... А не лучше-ли тогда сделать проверку на то, что ввели в поле? А если ввели одинарную кавычку, то добавить к ней еще одну и так далее :)...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.04.2003, 12:30 |
|
||
|
Объясните ситуацию
|
|||
|---|---|---|---|
|
#18+
Есть способ проще. Edit1.text - наше поле для ввода. Строка запроса выглядит так. Query1.sql.add('Insert into table_name (Name) values (' + quotedStr(Edit1.text)+ ')'); Мы добавляем в базу строку с текстом из edit1 Нетрудно догатдаться как добавить туда несколько параметров за один заапрос. - делаем переменную и пишем в нее конкатинацией строку запроса - потом подставляем переменную вместо edit1.text. Там будет гкморой с синтаксисам - но все раставляется по логике вещей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 23:59 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32134086&tid=2116679]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 374ms |

| 0 / 0 |
