• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 49 رای - 2.61 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: XML در دلفی
حالت موضوعی
#1
سلام
چطور می توان در دلفی از فایل XML که معرف یک جدول است استفاده کرد؟؟؟
چطور می توان این فایل را به DBgrid و صل کرد ؟؟
چطور می توان روی این فایل گزارش گرفت و Query زد؟؟؟

لطفاً اگر کسی اطلاعاتی در این مورد داره کمک کنه
با تشکر
 
پاسخ
#2
سلام
یعنی منظور شما این هست از جدول xml گذارش گرفت؟
چطور می توان این فایل را به DBgrid و صل کرد ؟؟
منظورتون به وصل کردن xml به dbgird بصورت مستقیم هست ؟
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
#3
Export كردن اطلاعات به XML
انجام دادن اين كار از طريق ADO به راحتي استفاده از متد SaveToFile است.

به كد زير نگاهي بياندازيد:
کد:
ADOTable1.SaveToFile('C:\test.xml', pfXML);
همچنين با استفاده از كد زير مي توانيد فايل XML مربوطه را Load كنيد:
کد:
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- به سادگي از متد زير استفاده كنيد:

کد:
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
 
پاسخ
#4
(09-03-2011، 10:20 AM)پارسا نوشته: سلام
یعنی منظور شما این هست از جدول 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 را انجام بدم.
من تمام این خطوطی را که شما زحمت کشیدید در اینترنت دیدم ، اما جواب سوال من نیست ، من فایل رو ایجاد کردم. مشکل در خواند این فایل ایجاد شده است.
 
پاسخ
#5
باید دلفی نصب کنم
نصب کردم پیوست میکنم
حتما برنامه باید با دلفی باشه؟
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
#6
بله حتماً باید دلفی7 باشه.
 
پاسخ
#7
من تو دلفی 2010 مینیویسم
اینم یه sample
کد:
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
 
پاسخ
#8
در سورس بالا از کامپونت TXMLDocument استفاده شده
insert add & save file در داخلش استفاده شده
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
#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 نمایش بده .
 
پاسخ
#10
در ضمن سورس بالا که گفتید پیدا کردید لینکشو درج کرده بودم زیرش .
شما باید xml رو کاملا فراخوانی کنید.
پیشنهاد میکنم لینک زیر رو کاملا مطالعه فرامیید.
بهترین sample برای دلفی xml هست.
ادرس لینک :
http://delphi.about.com/od/windowsshella...delphi.htm
موفق باشید
گروه دور همی پارسی کدرز
https://t.me/joinchat/GxVRww3ykLynHFsdCvb7eg
 
پاسخ
  


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  استفاده از اسکن اثر انگشت در دلفی amir_rezaee 0 1,755 06-06-2016، 09:20 AM
آخرین ارسال: amir_rezaee
  اجرای برنامه روی سیستمی که دلفی نصب نباشد nasrinPoornejaty 8 7,045 06-19-2013، 06:59 PM
آخرین ارسال: Saeed7007
  رنگی کردن رکوردهای استرینگ گرید در دلفی nasrinPoornejaty 8 9,311 06-12-2013، 08:13 PM
آخرین ارسال: Amin_Mansouri

پرش به انجمن:


Browsing: 1 مهمان