Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

db component and ACSII


Страницы:   1 2

bit ©   (2009-01-04 23:58:00) 

Проблема при исполнении консольной программы возникает ошибка.
Возможно неправильная декларация  TADOQuery.
Это правильная инициализация/декларация :
q1: TADOQuery;
q1:= nil;
?

Цель фоновый процесс который работает с db(mysql) через MySQL connector v3.xx.

Как "заставить" TListViev отображать ACSII кодировку?

program ConsoleClient;

{$APPTYPE CONSOLE}

uses
 Windows,
 Messages,
 SysUtils,
...

var
q1: TADOQuery;
SendMailString, sdate, Delimiter, mfname, TmpString: string;
TStringList1, tmpStrList: TStringList;
tmpVal, Str: WideString;
DelimPos: LongInt;
mf1: TextFile;


begin
 try
   { TODO -oUser -cConsole Main : Insert code here }

TStringList1:= nil;
q1:= nil;
q1.close;
q1.SQL.Text:='SELECT * FROM mytempdb WHERE Field_1 REGEXP '''+somevar+''+'.'+''';';
q1.ExecSQL;
q1.Open;

if q1.FieldCount>9 then
begin
 while not q1.Eof do
begin
SendMailString:= SendMailString+  (q1.fieldbyname('Field1').text) ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field2').text) ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field3').text) ;
...
q1.Next;
 end;

end;

 except
   on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
 end;
end.


Сергей М.   (2009-01-05 18:24:00) [21]


> Это copy-paste из VCL


Не трынди.
В оригинальной VCL не может быть подобной галиматьи.


> EAccessViolation


Объект TADOQuery кто за тебя будет создавать, Пушкин ?


bit   (2009-01-05 18:19:00) [22]

>>EAccessViolation

т.е не синтаксическая, появляется при исполнении


Anatoly Podgoretsky   (2009-01-05 17:03:00) [23]

> bit  (05.01.2009 16:50:05)  [5]

Да не про программу тебя спрашивали, а про ошибку.


bit   (2009-01-05 16:50:00) [24]


> Наверно, секретная ?

program ConsoleClient;

{$APPTYPE CONSOLE}

uses
 Windows,
 Messages,
 SysUtils,
 Variants,
 Classes,
 Graphics,
 Controls,
 Dialogs,
 DB,
 ADODB,
 StdCtrls,
 Buttons,
 ComCtrls,
 ShellApi,
 ExtCtrls;

var // in VCL form -> this object was declarated in TYPE
q1: TADOQuery;
SendMailString, sdate, : string;
tmpVal, Str: WideString;

begin
 try
   { TODO -oUser -cConsole Main : Insert code here }

Str:= DateTimeToStr(date());

q1:= nil; // try to initialize
q1.close;
q1.SQL.Text:='SELECT * FROM MyTestTable WHERE Field4 REGEXP '''+sdate+''+'.'+''';';
q1.ExecSQL;
q1.Open;

if q1.FieldCount>9 then //<--// One Item have 9 subitems= 1 row have 9 fields withdata// if there is no item(include 9 fileds) then ignore
begin
 while not q1.Eof do
begin
SendMailString:= SendMailString+  (q1.fieldbyname('First_Name').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Last_Name').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field2').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field3').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field4').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field5').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field6').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field7').text)+ #13 ;
SendMailString:= SendMailString+  (q1.fieldbyname('Field8').text)+ #13 ;
q1.Next;
 end; //while

Writeln('SendMailString', ': ', SendMailString);
  Readln;

end;
 except
   on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
     //WriteIn('Program terminated due to an exception');
 end;
end.


> В приведенном коде нет ни малейшего намека на существование
> TListView
>


Это copy-paste из VCL


Сергей М.   (2009-01-05 15:02:00) [25]


> при исполнении консольной программы возникает ошибка


Наверно, секретная ?


> Как "заставить" TListViev


В приведенном коде нет ни малейшего намека на существование TListView


> SELECT * FROM mytempdb


mytempdb - это что, таблица ?

А это

> if q1.FieldCount>9


зачем ?
Ты что, не знаешь сколько в таблице полей ?
И почему при кол-ве полей <= 9 данные из таблицы перестают быть нужны ?


> TStringList1:= nil; //лишнее
> q1:= nil; //лишнее
> q1.close; //полная ерунда - объект не существует, где ты его создаешь ?
>
>
> q1.ExecSQL; //зачем ? это не для селективных запросов
> q1.Open; //


Плохиш   (2009-01-05 02:01:00) [26]


> bit   (05.01.09 00:58) [2]
>
> @1
>
> реализовал большую часть в VCL(программа с формами),
>

Если эти загогулины, означают ответ на пост 1, то я не это советовал. А без знания основ использования объектов в делфи, ты далеко не уйдёшь, только время потеряешь.


bit   (2009-01-05 00:58:00) [27]

@1

реализовал большую часть в VCL(программа с формами),
думаю подход должен быть другим
Или можно  Copy-Paste (из VCL в Console)?


Плохиш   (2009-01-05 00:43:00) [28]

Судя по "коду", стоит начать с чтения книжки по основам.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо