Меню

Mismatch in datapacket валента ошибка

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, DB, DBClient, DBCtrls, Grids, DBGrids;
 
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ClientDataSet1: TClientDataSet;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Image1: TImage;
    Button3: TButton;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  m,m1,m2: TMemoryStream;
  s1,s2:int64;
begin
if savedialog1.Execute then
begin
m:=TMemoryStream.Create;
m1:=TMemoryStream.Create;
m2:=TMemoryStream.Create;
 try
  clientdataset1.SaveToStream(m1);
  image1.Picture.Bitmap.SaveToStream(m2);
  s1:=m1.Size;
  s2:=m2.Size;
  m.Write(s1,sizeof(s1));
  m.Position:=sizeof(s1);
  m1.Position:=0;
  m.CopyFrom(m1,s1);
  m.Position:=m.Position+s1;
  m.Write(s2,sizeof(s2));
  m.Position:=m.Position+sizeof(s2);
  m2.Position:=0;
  m.CopyFrom(m2,s2);
m.Position:=0;
  m.SaveToFile(savedialog1.FileName);
 finally
  m.Free;
m1.Free;
m2.Free;
 end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
  m,m1,m2:TMemoryStream;
  s1,s2:int64;
begin
if opendialog1.Execute then
begin
 m:=TMemoryStream.Create;
 m1:=TMemoryStream.Create;
 m2:=TMemoryStream.Create;
 try
  m.LoadFromFile(opendialog1.FileName);
  clientdataset1.Active:=true;
  m.Position:=0;
  m.Read(s1,sizeof(s1));
m.Position:=sizeof(s1);
  m1.CopyFrom(m,s1);
  m1.Position:=0;
  clientdataset1.LoadFromStream(m1);
m.Position:=m.Position+s1;
  m.Read(s2,sizeof(s2));
m.Position:=m.Position+sizeof(s2);
  m2.CopyFrom(m,s2);
  m2.Position:=0;
  image1.Picture.Bitmap.LoadFromStream(m2);
 finally
  m.Free;
  m1.Free;
  m2.Free;
 end;
 end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
  image1.Picture.LoadFromFile(opendialog1.FileName);
end;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
clientdataset1.FileName:='';
end;
 
procedure TForm1.Button4Click(Sender: TObject);
begin
clientdataset1.First;
while not clientdataset1.Eof do
clientdataset1.Delete;
image1.Picture.Bitmap.LoadFromFile('2.bmp');
end;
 
end.

    msm.ru

    Нравится ресурс?

    Помоги проекту!

    >
    Отчего возникает ошибка — Mismatch in da

    • Подписаться на тему
    • Сообщить другу
    • Скачать/распечатать тему



    Сообщ.
    #1

    ,
    24.01.06, 06:25

      есть связка — TADODataSet-TDataSetProvider-TClientDataSet, когда я вношу запись в TClientDataSet и делаю ApplyUpdates, то вылазит эта ошибка, причем данные успешно апдэйтятся. БД — MSSQL, Delphi — 6-й версии. У провайдера обрабатываю UpdateError, Событие AfterApplyUpdates наступает, там тоже код выполняется, вобщем все вроде нормально но вылеает эта ошибка. Как ее поправить?

      Wizard

      Bas



      Сообщ.
      #2

      ,
      24.01.06, 06:52

        Текст ошибки.


        Guest



        Сообщ.
        #3

        ,
        24.01.06, 07:26

          прошу прощения текст ошибки — Mismatch in datapacket

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • Delphi: Базы данных
          • Следующая тема

          Рейтинг@Mail.ru

          [ Script execution time: 0,0169 ]   [ 16 queries used ]   [ Generated: 28.01.23, 21:54 GMT ]  

           
          Lavrenty ©
           
          (2007-03-14 10:09)
          [0]

          Пытаюсь подключить XML-файл через ClientDataSet к DBGrid, но что-то не получается. У ClientDataSet через FieldDefs определяю поля, через контекстное меню «Create DataSet» создаю набор данных, в Fields Editor задаю поля, указываю имя файла xml, из которого брать данные, но при попытке сделать Active=true ошибка «Mismatch in datapacket?


           
          Jan
           
          (2007-03-14 10:12)
          [1]

          если ты подключаешь xml из ado? Зачем тебе ClientDataSet?


           
          Lavrenty ©
           
          (2007-03-14 10:23)
          [2]

          Дело в том, что необходимо отображать данные в гриде на информационном табло, а сама база на сервере. Если с ервером или с базой что-то случится, то на табло «огромными» буквами будет сообщение об ошибке, что не совсем, мягко говоря, красиво. Народ будет ходить и смотреть на всё это безобразие. Поэтому надо сделать независимым табло от базы. Оно будет читать данные из хml-файла, в который данные периодически будут сбрасываться из базы.


           
          VAleksey ©
           
          (2007-03-14 10:24)
          [3]

          Удалено модератором
          Примечание: По просьбе автора


           
          Jan
           
          (2007-03-14 10:28)
          [4]


          > Lavrenty ©   (14.03.07 10:23) [2]

          к сведенью, у TADODataset есть метод LoadFromFile.


           
          Lavrenty ©
           
          (2007-03-14 10:36)
          [5]


          > к сведенью, у TADODataset есть метод LoadFromFile.

          Похоже он требует подключения подключения к таблице, а мне это не надо — выдаёт ошибку «Missing connection …»


           
          Jan
           
          (2007-03-14 10:59)
          [6]


          > Похоже он требует подключения подключения к таблице, а мне
          > это не надо — выдаёт ошибку «Missing connection …»

          врете


           
          Val ©
           
          (2007-03-14 11:31)
          [7]

          >Lavrenty ©
          если проблема только в том что вы описали(вывод на табло при ошибках сервера и т.д.), то применение хмл-файла несколько неоправданно. может стоит подумать о верной/нужной обработке исключений?


           
          Val ©
           
          (2007-03-14 11:57)
          [8]

          хотя, если вы, при отсутствии коннекта с бд сегодня с утра хотите показывать вчерашние данные, то я извиняюсь, что сразу не догнал.


           
          Lavrenty ©
           
          (2007-03-15 14:42)
          [9]


          > хотя, если вы, при отсутствии коннекта с бд сегодня с утра
          > хотите показывать вчерашние данные, то я извиняюсь, что
          > сразу не догнал.

          Примерно так и есть. Попробовал так

          ClientDataSet2.LoadFromFile("c:data.xml");

          но получаю ошибку «Mismatch in datapacket». Подсказали попробовать с TXMLTransformProvider. Прочитал Help, ничего не понял. Может кто подскажет как же всё-таки трансформировать data.xml в нужный для ClientDataSet формат?


           
          Megabyte ©
           
          (2007-03-15 19:18)
          [10]

          У тебя не тот формат .xml-файла!
          Для начала тебе надо преобразовать файл в понятный формат для Датасета.
          Это делается с помощью компонента ТXMLTransform.
          НО, для форматирования надо задать правила форматирования. Чтобы сделать это автоматически, надо использовать утилиту xmlmapper.exe
          С помощью ее создаешь правила, сохраняешь их в файл и прописываешь имя файла в свойство компонента ТXMLTransform


           
          Jan
           
          (2007-03-16 09:41)
          [11]


          > У тебя не тот формат .xml-файла!

          у него он от ADO:)


           
          Megabyte ©
           
          (2007-03-16 13:01)
          [12]

          «Mismatch in datapacket» — у меня эту ошибку выдавало, когда я пытался обычный xml-файл использовать в CDS.


           
          Val ©
           
          (2007-03-16 13:31)
          [13]

          автор — расскажи нам всем — чем создавал файл?


           
          alex_*** ©
           
          (2007-03-16 15:44)
          [14]

          да сам пропарсил бы давно и залил в ADODataSet, ну или через XMLDocument, если файл не очень большой.


          I have a .cds file that suggest it is TClientDataSet file. When I try to open it whit TClientDataSet in Delphi 7, when set Active to true, error «Mismatch in datapacket» has occurred. Please help me 🙁

          bluish's user avatar

          bluish

          25.6k27 gold badges119 silver badges177 bronze badges

          asked Jul 26, 2012 at 12:52

          user1538595's user avatar

          4

          I just downloaded that file and can confirm that it definitely isn’t valid CDS file

          answered Aug 3, 2012 at 9:04

          Vladimir Ulchenko's user avatar

          use the xml mapper tool if you have one and after mapping select all and then from the Create mrnu, DataPacket from XML

          answered Sep 26, 2014 at 13:46

          randy's user avatar

          0 0 голоса
          Рейтинг статьи
          Подписаться
          Уведомить о
          guest

          0 комментариев
          Старые
          Новые Популярные
          Межтекстовые Отзывы
          Посмотреть все комментарии

          А вот еще интересные материалы:

        • Яшка сломя голову остановился исправьте ошибки
        • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
        • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
        • Mise 605 indesit коды ошибок
        • Mirrors edge ошибка при запуске приложения 0xc0000906