• 71 Vote(s) - 2.48 Average
  • 1
  • 2
  • 3
  • 4
  • 5
XML در دلفی
#1
درود
چطور می توان در دلفی از فایل XML که معرف یک جدول است استفاده کرد؟؟؟
چطور می توان این فایل را به DBgrid و صل کرد ؟؟
چطور می توان روی این فایل گزارش گرفت و Query زد؟؟؟

لطفاً اگر کسی اطلاعاتی در این مورد داره کمک کنه
با سپاس
  Reply
#2
درود
یعنی منظور شما این هست از جدول xml گذارش گرفت؟
چطور می توان این فایل را به DBgrid و صل کرد ؟؟
منظورتون به وصل کردن xml به dbgird بصورت مستقیم هست ؟

گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply
#3
Export كردن اطلاعات به XML
انجام دادن اين كار از طريق ADO به راحتي استفاده از متد SaveToFile است.

به كد زير نگاهي بياندازيد:
Code:
ADOTable1.SaveToFile('C:\test.xml', pfXML);
همچنين با استفاده از كد زير مي توانيد فايل XML مربوطه را Load كنيد:
Code:
ADOTable1.LoadFromFile('C:\test.xml');')
البته به جاي pfXML مي توانيد از pfADTG مي توانيد استفاده كنيد كه در اين صورت اطلاعات در يك فايل به صورت Binary نوشته مي شود كه به موضوع مبحث ما ربطي ندارد.

Export كردن يك Table به XML با استفاده از ClientDataSet

براي انجام اين عمل با استفاده از ClientDataSet از مراحل زير استفاده كنيد:

1- يك كمپوننت TDataSetProvider (اين كمپوننت در تب DataAccess قرار دارد) بر روي فرم خود بگذاريد و با استفاده از پراپرتي DataSet آن را به Table يا Query و يا به طور كلي به Dataset مورد نياز خود متصل كنيد.

2- يك كمپوننت TClientDataSet (اين كمپوننت هم در تب DataAccess قرار دارد) بر روي فرم خود بگذاريد و مقدار ProviderName آن را برابر نام كمپوننت TDataSetProviderي قرار دهيد كه در مرحله 2 ساختيد.

3- به سادگي از متد زير استفاده كنيد:

Code:
ClientDataSet1.Active := True;

;(   ClientDataSet1.SaveToFile('C:\1.XML', dfXML)
پارامتر دوم متد SaveToFile مي توانيد شامل مقادير زير باشد: dfBinary, dfXML, dfXMLUTF8.

بررسي راجع به dfBinary به مبحث مقاله ما مربوط نمي شود.

حتما متوجه شده ايد كه تفاوت dfXML و dfXMLUTF8 چيست؟ dfXMLUTF8 براي Export اطلاعات به XML با فرمت Unicode استفاده مي شود. البته راههاي ديگري هم وجود دارد كه در نسخه هاي قديمي تر دلفي به كار مي آيند. اين مقاله از آقاي محمد باقر معموري به آدرس http://www.irandevelopers.com/ است


گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply
#4
(09-03-2011، 10:20 AM)پارسا Wrote: درود
یعنی منظور شما این هست از جدول xml گذارش گرفت؟
چطور می توان این فایل را به DBgrid و صل کرد ؟؟
منظورتون به وصل کردن xml به dbgird بصورت مستقیم هست ؟

بله از جدولی که در فایل XML هست گزارش گرفت و Query زد .یا بصورت مستقیم یا غیر مستقیم .ما یک فایل XML داریم که اطلاعات یک جدول از دیتابیس خود را در این فایل بصورت زیر ریختیم
-
<TST.PACKAGE_DEP2>
- <Records>
<ID>1</ID>
<PACKAGE_NAME>BCKPACK2.AAA</PACKAGE_NAME>
<DSN>SRVC</DSN>
<INDEX_NAME>COMMON.CUSTOMER_ACCOUNT__IDX</INDEX_NAME>
<INDEX_COLUMN>CUSTOMER_ACCOUNT_ID,</INDEX_COLUMN>
<INSERT_DATE>08/16/2011 10:43:01</INSERT_DATE>
<TBNAME>CUSTOMER_ACCOUNT</TBNAME>
<TBCREATOR>COMMON</TBCREATOR>
</Records>
..........
حالا باید بتونم در این جدول (xml) چهار عمل select ، Update, Delete و Insert را انجام بدم.
من تمام این خطوطی را که شما زحمت کشیدید در اینترنت دیدم ، اما جواب سوال من نیست ، من فایل رو ایجاد کردم. مشکل در خواند این فایل ایجاد شده است.
  Reply
#5
باید دلفی نصب کنم
نصب کردم پیوست میکنم
حتما برنامه باید با دلفی باشه؟

گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply
#6
بله حتماً باید دلفی7 باشه.
  Reply
#7
من تو دلفی 2010 مینیویسم
اینم یه sample
Code:
var
    sl : TStringList;
    xmlDoc : TXMLDocument;
    iNode : IXMLNode;
begin
    xmlDoc := TXMLDocument.Create(nil) ;
    try
      xmlDoc.Active := true;

      iNode := xmlDoc.AddChild('leaf') ;
      iNode.Attributes['attrib1'] := 'value1';
      iNode.Text := 'Node Text';

      sl := TStringList.Create;
      try
        sl.Assign(xmlDoc.XML) ;

        sl.Insert(0,'<!DOCTYPE ns:mys SYSTEM "myXML.dtd">') ;
        sl.Insert(0,'<?xml version="1.0"?>') ;

        sl.SaveToFile('c:\Test.xml') ;
      finally
        sl.Free;
      end;

    finally
      xmlDoc := nil;
    end;
end;
  And here's the resulting XML:  <?xml version="1.0"?>
<!DOCTYPE ns:mys SYSTEM "myXML.dtd">
<leaf attrib1="value1">Node Text</leaf>

گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply
#8
در سورس بالا از کامپونت TXMLDocument استفاده شده
insert add & save file در داخلش استفاده شده

گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply
#9
مشکلی نداره شما با دلفی 10 لطف ککنید بنویسید ، من از IXMLDOMDocument
استفاده کردم . کد من از Table می خونه و در یک فایل XML ذخیره می کنه . این کار رو انجام دادم. که در زیر آوردم :
function TForm1.makeXml(table: TTable): Integer;
var
i : Integer;
xml,temp : String;
begin
try
table.close;
table.open;
xml := table.TableName;
doc := CreateOleObject('Microsoft.XMLDOM')
as IXMLDomDocument;
root := doc.createElement(xml);
doc.appendchild(root);
while not table.eof do begin
child:= doc.createElement('Records');
root.appendchild(child);
for i:=0 to table.FieldCount-1 do begin
child1 := doc.createElement(table.Fields[i].FieldName);
child.appendchild(child1);
child1.appendChild(doc.createTextNode(temp));
end;
table.Next;
end;
doc.save(xml+'.xml');
memo1.lines.Append(doc.xml);
Result:=1;
except
on e:Exception do
Result:=-1;
end;

حالا می خوام بر اساس یک شرایط مثلا اگر ایندکس XX بود اطلاعات آن نود را در DBgrid نمایش بده .
  Reply
#10
در ضمن سورس بالا که گفتید پیدا کردید لینکشو درج کرده بودم زیرش .
شما باید xml رو کاملا فراخوانی کنید.
پیشنهاد میکنم لینک زیر رو کاملا مطالعه فرامیید.
بهترین sample برای دلفی xml هست.
ادرس لینک :
http://delphi.about.com/od/windowsshella...delphi.htm
موفق باشید

گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
  Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  استفاده از اسکن اثر انگشت در دلفی amir_rezaee 0 1,514 06-06-2016، 09:20 AM
Last Post: amir_rezaee
  اجرای برنامه روی سیستمی که دلفی نصب نباشد nasrinPoornejaty 8 7,086 06-19-2013، 06:59 PM
Last Post: Saeed7007
  رنگی کردن رکوردهای استرینگ گرید در دلفی nasrinPoornejaty 8 9,325 06-12-2013، 08:13 PM
Last Post: Amin_Mansouri

Forum Jump:


Users browsing this thread: 1 Guest(s)