PDA

View Full Version : استفاده از پروسییجر insert در دلفی



elena
دوشنبه 13 مهر 1394, 14:34 عصر
دستور insert در sql رو به صورت زیر نوشتم
USE [bank]
GO
/****** Object: StoredProcedure [dbo].[ms_InsertCommand] Script Date: 10/05/2015 15:10:58 ******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE [dbo].[ms_InsertCommand]
@id int,
@name nchar(10)
ASBEGIN
INSERTINTO ms(id,name)VALUES(@id, @name);
END
چطور از این پروسیجر در دلفی استفاده کنم؟

یوسف زالی
دوشنبه 13 مهر 1394, 15:04 عصر
سلام.
متن رو در تگ مناسب قرار بدید تا این طوری به هم نریزه.
یکی از راههاش اینه که یک ADOStoredProc روی فرم قرار بدید و نام پروسیجر رو ست کنید. بعد اون رو با پارامتر های مناسب پر کرده و execute کنید.

elena
دوشنبه 13 مهر 1394, 15:40 عصر
سلام.
متن رو در تگ مناسب قرار بدید تا این طوری به هم نریزه.
یکی از راههاش اینه که یک ADOStoredProc روی فرم قرار بدید و نام پروسیجر رو ست کنید. بعد اون رو با پارامتر های مناسب پر کرده و execute کنید.پارامترهارو ست کردم چطوری execute کنم؟

یوسف زالی
دوشنبه 13 مهر 1394, 15:59 عصر
اسم پروسیجر دات بقیه ماجرا

elena
دوشنبه 13 مهر 1394, 20:51 عصر
موقع ذخیره مشکل پیش میاد،من دوتا فیلد id,name دارم که id primery key هست اگه امکان داره کد sql من رو در قسمت بالا چک کنید

یوسف زالی
سه شنبه 14 مهر 1394, 10:29 صبح
کد تمیز رو در تگ Code دوباره قرار بدید. قابل خوندن نیست.

elena
سه شنبه 14 مهر 1394, 13:46 عصر
USE [bank]
GO
/****** Object: StoredProcedure [dbo].[ms_InsertCommand] Script Date: 10/06/2015 13:36:37 ******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE [dbo].[ms_InsertCommand]
@id int,
@name nchar(10)
ASBEGIN
INSERTINTO ms(id,name)VALUES(@id, @name);
END
داخل تگ کد هم بهم میریزه

elena
چهارشنبه 15 مهر 1394, 21:49 عصر
مشکل من تو پارامترهاست که موقع ست کردن مقدار دهی میشن و ارور میده چون پارامتر کامپوننت پروسیجر مقدار دهی اولیه میشه موقعی که این مقدار اولیه را حذف میکنم پیش فرض Null میگیرد و چون کلید اصلی نمی تواند Null بگیرد ارور میدهد.
چطور مقدار این پارامتر را تنظیم کنم؟

RahmanAmiriSh
چهارشنبه 22 مهر 1394, 19:18 عصر
دوست عزیز شما یک ADOQuery روی فرم بزار و از این کد استفاده کن :

with adoquery1 do begin
sql.clear;
sql.add('Inser Into Table (id,nam) values (:id,:Nam)');
parameters.parambyname('id').value := edit1.text;
parameters.parambyname('Name').value := edit2.text;
ExecSQL;
end;

elena
چهارشنبه 22 مهر 1394, 20:27 عصر
دوست عزیز شما یک ADOQuery روی فرم بزار و از این کد استفاده کن :

with adoquery1 do begin
sql.clear;
sql.add('Inser Into Table (id,nam) values (:id,:Nam)');
parameters.parambyname('id').value := edit1.text;
parameters.parambyname('Name').value := edit2.text;
ExecSQL;
end;من از ADOStoredProc1استفاده می کنم مشکل اینه که مقادیر داخل edit ها رو چطوری به پروسیجر داخل sql پاس بدم؟

elena
چهارشنبه 22 مهر 1394, 22:00 عصر
مشکلم حل شد،ممنون از همتون
with ADOStoredProc1 do begin
ADOStoredProc1.Parameters.ParamByName('@id').Value :=edt_id.Text;
ADOStoredProc1.Parameters.ParamByName('@name').Val ue:=edt_name.Text;
ADOStoredProc1.ExecProc;

RahmanAmiriSh
جمعه 24 مهر 1394, 08:56 صبح
فرقی نمیکنه میتونی از همون روش استفاده کنی