![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMemoField [D7]
OlegL © (2004-12-14 09:48:00)Люди как работается с memo полями (TMemoField)
OlegL (2004-12-14 17:59:00) [1]Может всё дело в Foxpro
Александр Иванов (2004-12-14 17:51:00) [2]В [18] и [19] код рабочий.
OlegL (2004-12-14 17:49:00) [3]
> sniknik ©
Со StringStream я срану испробовал ...глухо и так
Table2PNAME.AsString:= Table1.FieldByName('pname').AsString[1];тоже не идёт.
Александр Иванов (2004-12-14 15:35:00) [4]Да, действительно изврат. Уже не в ту сторону изначально мысли повернулись. :).
sniknik (2004-12-14 15:30:00) [5]Александр Иванов © (14.12.04 15:19) [18]
зачем же такие извраты? ;)
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.First;
while not Table1.Eof do begin
Table2.Append;
Table2PNAME.AsString:= Table1.FieldByName('pname').AsString[1];
Table1.Next;
end;
if Table2.State in (dsEdit, dsInsert) then Table2.Post;
end;
вполне полноценная замена в случае если поле PName имеет тип Character (1 символ так понимаю ;)
Александр Иванов (2004-12-14 15:19:00) [6]procedure TForm1.Button1Click(Sender: TObject);
var
Stream1: TStringStream;
begin
Table1.First;
while not Table1.Eof do
begin
Table2.Append;
Stream1 := TStringStream.Create(Table1.FieldByName('pname').AsString);
Table2PNAME.LoadFromStream(Stream1);
Table2.Post;
Table1.Next;
end;
end;
В данном случае поле PName из первой табички имеет тип Character
sniknik (2004-12-14 15:14:00) [7]> А если
> Table1.FieldByName('pname')
> не блоб
то все одно какойто тип да присутствует, тогда там есть asТипПоля
st:= Table1.FieldByName('pname').asString; к примеру. (в принципе и мемо поле так можно, хотя от компонент наверное зависит... ADO может остальные ... хз. проверь)
OlegL (2004-12-14 14:44:00) [8]А если
Table1.FieldByName('pname')
не блоб
Александр Иванов (2004-12-14 12:20:00) [9]
procedure TForm1.Button1Click(Sender: TObject);
var
Stream1: TBlobStream;
begin
Table1.First;
while not Table1.Eof do
begin
Table2.Append;
Stream1 := TBlobStream.Create(TBlobField(Table1.FieldByName('pname')), bmRead);
Table2PNAME.LoadFromStream(Stream1);
Table2.Post;
Table1.Next;
end;
end;
Александр Иванов (2004-12-14 12:02:00) [10]А метод Post вызываешь?
OlegL (2004-12-14 11:45:00) [11]точнее
t_str := TStringStream.Create(DataSet2.FieldByName('pname').Value);
m_str := TMemoryStream.Create();
m_str.LoadFromStream(t_str);
TMemoField(DsDbfTable1.Fields.FieldByName('pname')).LoadFromStream(m_str);
Александр Иванов (2004-12-14 11:42:00) [12]Что-то я не понял.
Весь код выглядит так:
t_str := TStringStream.Create(fieldbyname('pname').Value);
m_str := TMemoryStream.Create();
m_str.LoadFromStream(t_str);
TMemoField(DsDbfTable1.Fields.FieldByName('pname')).LoadFromStream(m_str)
???
OlegL (2004-12-14 11:38:00) [13]А str какого типа должен быть? Я делаю так :-)))
t_str := TStringStream.Create(fieldbyname('pname').Value);
m_str := TMemoryStream.Create();
m_str.LoadFromStream(t_str);
OlegL (2004-12-14 11:35:00) [14]пробовал уже .. то же самое
Александр Иванов (2004-12-14 11:34:00) [15]Да ... Такие компонены не видел.
Но попробуй так:
TBlobField(DsDbfTable1.Fields.FieldByName('pname')).LoadFromStream(m_str)
OlegL (2004-12-14 11:17:00) [16]Не говорит ничего, просто поле пустое.
pname - мемо
Работаю с dbf посредством компонент Degisy Data
Александр Иванов (2004-12-14 11:10:00) [17]Что говорит?
И какой тип поля pname?
Какая БД?
OlegL (2004-12-14 11:02:00) [18]Вообще-то не совсем разобрался. Пишу
TMemoField(DsDbfTable1.Fields.FieldByName('pname')).LoadFromStream(m_str)
и не работатет.
OlegL (2004-12-14 10:10:00) [19]Всё спасибо, разобрался :-))
OlegL (2004-12-14 10:08:00) [20]А поподробней можно?