ドキュメントをロードするために TMongoWire デモ プログラムと非常によく似た操作を実行しようとすると、異なる結果が得られるのはなぜですか? ページの作成時に、すべての会社名を取得して (最終的に) コンボボックスにロードしたいと考えています。これは私が遊んでいるコードです:
d:=BSON;
q:=TMongoWireQuery.Create(MongoWire);
try
q.Query('mwx1.companies',nil);
while q.Next(d) do
begin
s := BsonToJson(d);
sl.add(d['CompanyName']);
sl.Add(TBSONDocument(d).item['CompanyName'])
end;
finally
q.Free;
end;
JSON を S に割り当てる時点で、JSON は完全に正しく、CompanyName にはデータが含まれています。その行はテストのためだけにありました。しかし、次の 2 行では、値が null であることが示されているため、何も生成されません (データを取得するためにさまざまな方法を試しました)。TBSONDocument(d) を調べると、正しい情報がすべて表示されます。だから、なぜそれが機能しないのか、私は困惑しています。手がかりはありますか?
最初は空の BSON として開始されますが、最初の繰り返しのループにあるときは、次の BSON が含まれています。
'{"_id":"ObjectID(\"524547512dcf91c1dc7476cb\")","Email":"2324","CompanyName":"テスト 1","Addr1":"fs","Addr2":"ertert ","都市":"iukuiuiku","都道府県":"uikuiku","郵便番号":"dsf ","国":"ff","電話番号":"fdsd","営業担当者":"sds" ,"ContactPhone":"sdf","Contact Email":"fsdf","ContactName":"f","DateCreated":"g2","website":"34","SMS":"23" ,"Logo":"23423","Status":"qwqw","Keywords":"3423","Shortcode":"qwqw","ParentID":"アズダ" }'