![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
db component and ACSII
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.
bit (2009-01-06 09:32:00) [1]@27 solved
bit (2009-01-05 21:40:00) [2]пробовал настроить mysql connector->Character set на ASCII но
"can't initialize character set ascii (path: C:\folder\MYSQLfolder)"
bit (2009-01-05 21:26:00) [3]
> System.Utf8ToAnsi()
это если уверен что mysql connector возвращает utf-8
в данном случае нет. может koi ili unicode...???
Сергей М. (2009-01-05 21:10:00) [4]см. System.Utf8ToAnsi()
bit (2009-01-05 21:07:00) [5]1. navicat portable (здесь все норм отобр)
2. mysql
+ mysql connector v3 (может он "односторонний"? только utf-8 пропускает?)
Сергей М. (2009-01-05 20:51:00) [6]
> в настройках db и исходной таблицы стоит ACSII
Какими средствами и где ты это увидел ?
СУБД какая ?
bit (2009-01-05 20:30:00) [7]>ACSII это из vcl
procedure TForm1.BitBtn1Click(Sender: TObject); //
var
li:tlistitem; // !!!!!
query: string;
begin
q1.SQL.Text:=memsql.lines.text;
//q1.SQL.Text:='select * from mytable';
q1.Open;
query:='';
while not q1.Eof do
begin
li:=lv.Items.Add;
li.Caption:=q1.fieldbyname('First_Name').Value;
li.SubItems.Add(q1.fieldbyname('First_Name').text);
li.SubItems.Add(q1.fieldbyname('Last_Name').text);
li.SubItems.Add(q1.fieldbyname('-2-').text);
li.SubItems.Add(q1.fieldbyname('-3-').AsString);
li.SubItems.Add(q1.fieldbyname('-4-').AsString);
li.SubItems.Add(q1.fieldbyname('-5-').AsString);
li.SubItems.Add(q1.fieldbyname('-6-').AsString);
li.SubItems.Add(q1.fieldbyname('-7-').AsString) ;
li.SubItems.Add(q1.fieldbyname('-8-').AsString) ;
q1.Next;
end;
end;
в настройках db и исходной таблицы стоит ACSII.
а listview отображает некорректно
Anatoly Podgoretsky (2009-01-05 20:27:00) [8]
> Сначала ответь "по конкретнее" на вопрос, какое отношение
> вышеприведенный тобой код имеет к TListView
Слово красивое.
Плохиш (2009-01-05 20:23:00) [9]Хм, так многа букав появилось в ветке, а результат всё тот же, что и в [2]...
Сергей М. (2009-01-05 20:17:00) [10]
> Почему тогда ругается когда пишешь type q1: TADOQuery; .
> etc после uses и до var? Тожесамое разрешено в VCL
Не трынди, не разрешено.
Правила Паскаля единыдля любогоПаскаль-приложения, будь оно хоть VCLное, хоть консольное, хоть на Луне.
> как свою иконку назначить в console?
Какие тебе "иконки", если у тебя проблемы со знанием азоввыбранного тобой языка программирования ?
> по конкретнее?
Сначала ответь "по конкретнее" на вопрос, какое отношение вышеприведенный тобой код имеет к TListView
bit (2009-01-05 20:11:00) [11]
> Нет там никаких ограничений, не трынди.
Почему тогда ругается когда пишешь type q1: TADOQuery; .etc после uses и до var? Тожесамое разрешено в VCL. А как свою иконку назначить в console? (в vcl в project->pref->etc)
> Может.
А по конкретнее? свойства ,,,
Сергей М. (2009-01-05 19:59:00) [12]
> ограничениями в Colsole
Нет там никаких ограничений, не трынди.
> TListView может отображать ACSII кодировку?
Может.
bit (2009-01-05 19:56:00) [13]Сергей М- спасибо, не думал но твой nil спас ситуацию
а есть еще альтернативы? (nil = brute force)
Amoeba (2009-01-05 19:53:00) [14]
> bit (05.01.09 19:51) [14]
>
>
> > до полного просветления.
>
> LOL
>
> кажется жизнь легче с VCL чем с ограничениями в Colsole
>
> >> так TListView может отображать ACSII кодировку? если
> да то как поменять ее?
LMD!
bit (2009-01-05 19:51:00) [15]
> до полного просветления.
LOL
кажется жизнь легче с VCL чем с ограничениями в Colsole
>> так TListView может отображать ACSIIкодировку? если да то как поменять ее?
Amoeba (2009-01-05 19:42:00) [16]
> bit (05.01.09 19:37) [11]
>
>
> > Давай уже садись и читай учебники.
>
> OK,
Плохо читал. Читай еще и так до полного просветления.
Сергей М. (2009-01-05 19:40:00) [17]Вместо TComponent укажи nil.
Тебя эта затычка, конечно, не спасет, но E2010 на этой строчке исчезнет.
bit (2009-01-05 19:37:00) [18]
> Давай уже садись и читай учебники.
OK,
>>q1 := TADOQuery.Create(не важно кто);
q1 := TADOQuery.Create(TComponent ); //????
error: [DCC Error] ConsoleClient.dpr(74): E2010 Incompatible types: 'TComponent' and 'Class reference'
Сергей М. (2009-01-05 18:50:00) [19]
> как его создавать?
q1 := TADOQuery.Create(не важно кто);
> отличие от VCL что в Console app не проходит TYPE
Ты сам-то понял что сказал ?
Давай уже садись и читай учебники.
bit (2009-01-05 18:45:00) [20]
> Объект TADOQuery кто за тебя будет создавать, Пушкин ?
если так правильно то,
q1.Create(TOwner: Лермонтов или кому(TComponent) его назначить)
или как его создавать?
>>отличие от VCL что в Console app не проходит TYPE