اللغة العربية مع قواعد البيانات فايربيرد ودلفي 2006 باستخدام مكوناتZeosDBO
#11
الاخ mobile كيف تقوم بادخال البيانات الى قاعدة البيانات

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

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

ولو اجد مكون مجاني غير لتركته لقد اتعبني وانا قليل المعرفة بالبرمجة


الملفات المرفقة
.rar   New Folder (3).rar (الحجم : 55.77 ك ب / التحميلات : 9)
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#14
الاخ موبيل ربما يوجد طرق احسن من هذه الطريقة ... المهم كبداية
اطلع على الخطوات فى الشرح الفلاشى .
بالتوفيق .


الملفات المرفقة
.rar   FireBird.part1.rar (الحجم : 512 ك ب / التحميلات : 39)
.rar   FireBird.part2.rar (الحجم : 512 ك ب / التحميلات : 48)
.rar   FireBird.part3.rar (الحجم : 503.7 ك ب / التحميلات : 50)
الرد
#15
بارك الله فيك اخي hanipino لقد نجحت معي
جزاك الله الف خير
لقد اتعبتك معي لكن ان شاء الله لن يذهب عملك يوم الجزاء سدا .
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#16
السلام عليكم ورحمة الله
لكن اخي hanipino اذا استعملنا query ونعطيعا الاستعلام اثناء التطبيق اي متغير استعلامها اين نضع الكودين؟
بارك الله فيك
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#17
و عليكم السلام

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

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 مثلا لاكن نتقص بعض الامور ساحاول اجادها .
الرد
#18
اكتب هذا فى الحدث AfterOpen مع نزل اول شرط فى الاجراء GetSetText
كود :
procedure TForm1.ZQuery1AfterOpen(DataSet: TDataSet); begin GetSetText(DataSet); end;

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

اخي hanipino يبدو ان الدالة settext لاتعمل مع هذا الحل
لأستهلنّ الصعب أو أدرك المنى    فما انقادت الآمال إلاّ لصابر
الرد
#20
انا تعمل عندى بشكل عادى

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


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم