سلام
پس در این صورت برای دریافت ورودی نام از فرم به این صورت باید اجرا کنیم:
ZQuery2.sql.Add('call `amahi`.`insert_p`(908520010,'+QuotedStr(Edit1.Text)+','+QuotedStr('jalali')+');');
محتوای Edit1.Text رو میگیره و میفرسته به SP ما و خروجی رو بر ثبت میکنه.
آفرین
این یک راه استفاده از stored procedure ها هست. یعنی شما متن رو ایجاد کنی و به جای پارامتر های ورودی مقدار متغیرهایی که کاربر وارد کرده رو بزارید.
این راه خیلی راحت و مفیده ولی همیشه نمیشه اینجوری به procedure ها پارامتر ها رو ارسال کرد و بعضی وقتا کار خیلی سخت میشه.(مثلا برای درج تصویر در جدول)
روش دوم که قبلا هم گفتم استفاده از param توی query هستش.
شما همون متن رو که لازم دارید توی خاصیت sql مینویسی ولی قبل از هر متقیر یک : میزاری. اینجوری مشخص می کنی که عبارت بعدی یک متغیر است که باید مقدار دهی بشه.
call `amahi`.`insert_p` (:id,:name,:family');
بعد اگه قسمت param رو نگاه کنی ۳ تا متقیر توش اومده که دقیقا همون نامهای نوشته شده تو query با : است.
تو این مرحله باید نوع پارامتر از نظر ورودی یا خروجی رو تعریف کنی و بعد نوع پارامتر از نظر نوع عددی یا رشته ای یا ...
بعد که همه پارامتر های ورودی رو تنظیم کردی تو کد اینجوری بهشون مقدار میدی :
ZQuery2.ParamByName('id').AsInteger:=strtoint(Edit1.Text);
ZQuery2.ParamByName('name').AsString:=Edit2.Text;
ZQuery2.ParamByName('family').AsString:=Edit3.Text;
ZQuery2.ExecSQL;
یا حق