Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.08.2009, 16:20
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию Без понятия ...

Подскажите а можно как нибудь результат запроса sql внести в переменную ,если запрос с условием ...там насколько я знаю возвращается не текст,а запись .
то есть кодинг примерно вот такой
Код:
adoquery3.sql.text:='SELECT * FROM table1  WHERE nick='+quotedStr(Edit9.Text)+ ' and pass='+quotedstr(edit10.text)+'';
ADOQuery3.open;
edit8.Text:=inttostr(ADOQuery3.RecordCount);
if ADOQuery3.RecordCount <> 0 then
begin
s:='#A' + [вот здесь мне нужны результаты запроса через пробел (в бд не только ник и пасс ,там еще инфа ,аська ,и тп.)и вот здесь они должны идти через пробел];
Socket.SendText(s);
то есть послать сокет должен примерно следующее
s:='#A'+(nick+' '+pass+' '+icq..и т.д.)
Подскажите как такое сделать полегче...
Ответить с цитированием
  #2  
Старый 08.08.2009, 18:17
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

1-й вариант:
Код:
s:='#A'+ADOQuery3.Fields[0].asString+'<пробел>'+ADOQuery3.Fields[1].asString+'<пробел>'+ADOQuery3.Fields[2].asString+'<пробел>'+
и т.д. по количеству полей начиная с нулевого поля.

2-й вариант:
Код:
var 
i:integer;
...
твой запрос
...
for i:=0 to ADOQuery3.FieldCount-1 do
s:=s+'<пробел>'+ADOQuery3.Fields[i].asString;
s:='#A'+s;

Если полей не сильно много - я бы взял 1-й вариант
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
  #3  
Старый 15.08.2009, 01:30
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Yurk@
Второй вариант не сработал ..делфи выделяет таким запросом всегда одно и то же поле ,которое мне не нужно ..то есть вот код:
Код:
adoquery3.sql.text:='SELECT * FROM table1  WHERE nick='+quotedStr(Edit9.Text)+ ' and pass='+quotedstr(edit10.text)+'';
ADOQuery3.open;
for i:=0 to ADOQuery3.FieldCount-1 do
s:=s+' '+ADOQuery3.Fields[i].asString;
s:='#A'+s;
socket.sendtext(s);

второй вариант я как то не понял =) обьясни плиз))
Appolon
запрос не верный ..
Ответить с цитированием
  #4  
Старый 15.08.2009, 11:19
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Явно укажи какие поля тебе нужны:
Код:
s:=ADOQuery3.FieldByName('nick').AsString+' '+ADOQuery3.FieldByName('pass').AsString+ и т.д.;
Ответить с цитированием
  #5  
Старый 16.08.2009, 14:27
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Ну так если тебе самому впадлу немного подумать, то правильный запрос будет таким:
Код:
adoquery3.sql.Add('SELECT nick+'' ''+pass+'' ''+icq FROM table1 ');
adoquery3.sql.Add(' WHERE nick='+quotedStr(Edit9.Text));
adoquery3.sql.Add(' and pass='+quotedstr(edit10.text));
ADOQuery3.open;
edit8.Text:=inttostr(ADOQuery3.RecordCount);
if ADOQuery3.RecordCount <> 0 then
 begin
  s:='#A' + ADOQuery3.Fields.Fields[0].AsString; 
  Socket.SendText(s);
__________________
From VasYa with LoVe...
Ответить с цитированием
  #6  
Старый 23.08.2009, 23:45
Booo Booo вне форума
Новичок
 
Регистрация: 03.07.2008
Сообщения: 93
Репутация: 10
По умолчанию

Ой все норм))спасибо всем))

Последний раз редактировалось Booo, 24.08.2009 в 23:42.
Ответить с цитированием
  #7  
Старый 08.08.2009, 18:29
Аватар для Appolon
Appolon Appolon вне форума
Новичок
 
Регистрация: 10.01.2008
Адрес: гЕйск
Сообщения: 76
Репутация: 16
По умолчанию

Для этого используй не такой запрос как у тебя, а что-то типа:
Код:
adoquery3.sql.text:='SELECT nick+' '+pass+' '+icq+' '+ и.т.д.  FROM table1  WHERE nick='+quotedStr(Edit9.Text)+ ' and pass='+quotedstr(edit10.text)+'';
ADOQuery3.open;
edit8.Text:=inttostr(ADOQuery3.RecordCount);
if ADOQuery3.RecordCount <> 0 then
 begin
  s:='#A' + ADOQuery3.Fields.Fields[0].AsString; 
  Socket.SendText(s);
__________________
From VasYa with LoVe...
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:41.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025