delphi4arab منتديات دلفي للعرب

نسخة كاملة : اللغة العربية مع قواعد البيانات فايربيرد ودلفي 2006 باستخدام مكوناتZeosDBO
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
الاخ mobile كيف تقوم بادخال البيانات الى قاعدة البيانات

1- هل تعتمد على ZStoredProc + الحدث BoforPost ...
2- هل عن طريق TDBNavigator + DBGrid + TZTable (مباشرتا)
3- ???

----------------
ارفق قاعدة بيانات بها جدول واحد + مثال بالدالفى للاتصال بها
لنحاول معا .
للاسف جربت ولم تنجح ويبدو ان مشكلة zeos عند مشهورة وجدت الاكثير من الاسئلة منها في النت
تفضل المثال zeos & UIB

ولو اجد مكون مجاني غير لتركته لقد اتعبني وانا قليل المعرفة بالبرمجة
الاخ موبيل ربما يوجد طرق احسن من هذه الطريقة ... المهم كبداية
اطلع على الخطوات فى الشرح الفلاشى .
بالتوفيق .
بارك الله فيك اخي hanipino لقد نجحت معي
جزاك الله الف خير
لقد اتعبتك معي لكن ان شاء الله لن يذهب عملك يوم الجزاء سدا .
السلام عليكم ورحمة الله
لكن اخي hanipino اذا استعملنا query ونعطيعا الاستعلام اثناء التطبيق اي متغير استعلامها اين نضع الكودين؟
بارك الله فيك
و عليكم السلام

فى هذه الحالة ننشىء الاجراءات بشكل مستقل
اولا - عرف الاجراءات التالية

PHP كود :
private
    
procedure AllOnGetText(Sender: TField; var Text: string; DisplayText: Boolean);
    
procedure AllOnSetText(Sender: TField; const Text: string);

  public
   
procedure GetSetText(DataSet: TDataSet); 

فى قسم implementation
PHP كود :
implementation

{$R *.dfm}

procedure TForm1.AllOnGetText(Sender: TField; var Text: string;
  
DisplayText: Boolean);
begin
  
if Sender.DataType in [ftString, ftMemo, ftFmtMemo, ftFixedChar, ftWideString] then
    Text 
:= WideCharToString(PWideChar(UTF8Decode(Sender.AsString)))
  else
  
Text := Sender.AsString;
end;

procedure TForm1.AllOnSetText(Sender: TField; const Text: string);
begin
  
if Sender.DataType in [ftString, ftMemo, ftFmtMemo, ftFixedChar, ftWideString] then
    Sender
.AsVariant := UTF8Encode(widestring(Text))
  else
  
Sender.AsString := Text;
end;

procedure TForm1.GetSetText(dataset: TDataSet);
var
  
i: Integer;
begin
  
if not Assigned(dataset.Fields[0].OnGetText) then
  
for I := 0 to dataset.Fields.Count - 1 do
  
begin
    dataset
.Fields[i].OnGetText := AllOnGetText;
    
dataset.Fields[i].OnSetText := AllOnSetText;
  
end;
end; 

ثم بالنسبة لكل query فى الحدث fterScroll نكتب مايلى فقـــــــــــــــــــــــط .
PHP كود :
procedure TForm1.ZQuery1AfterScroll(DataSet: TDataSet);
begin
  GetSetText
(DataSet);
end; 

بعد كل Scroll بتم اجراء عملية مقرانة بعد اول Scroll فقط .
يوجد ما احسن من هذه الطريقة
.. من الافضل استعمال الحدث BeforOpen مثلا لاكن نتقص بعض الامور ساحاول اجادها .
اكتب هذا فى الحدث AfterOpen مع نزل اول شرط فى الاجراء GetSetText
كود :
procedure TForm1.ZQuery1AfterOpen(DataSet: TDataSet); begin GetSetText(DataSet); end;

احسن من الحدث AfterScroll Smile
السلام عليكم ورحمة الله

اخي hanipino يبدو ان الدالة settext لاتعمل مع هذا الحل
انا تعمل عندى بشكل عادى

اطلع على هاذا و اعد الكرة
كود :
http://www.mirorii.com/fichier/10/537556/query-rar.html
بالتوفيق
الصفحات : 1 2 3