PDA

View Full Version : ورود اطلاعات



ali643
پنج شنبه 17 اردیبهشت 1383, 00:35 صبح
سلام


ندونستن که عیب نیست

آقا چه طوری تو دلفی 8 میشه یه سری اطلاعات رو به دیتابیس که ازنوع Sql server هست Append کرد
یا اگه میشه یه مرجع که اینها رو گفته باشه زحمتشو بکشید

مرسی
شب خوش

SyntaxCheck
شنبه 19 اردیبهشت 1383, 03:11 صبح
سلام
یک راه حل مناسب و نه چندان سخت و بطور خلاصه:
جهت اجرای یک "کوئری بدون پاسخ" میتونید از چیزی شبیه به این فانکشن استفاده کنید. فقط کانکشن استرینگ رو یادتون نره:



procedure irExecuteNonQuery(SQL:string);
var
ConnetionString: String;
Connection: OleDbConnection;
MyCommand: OleDbCommand;
begin
ConnetionString := '...';
Connection := OleDbConnection.Create(ConnetionString);
Connection.Open;
MyCommand := OleDbCommand.Create(SQL,Connection);
MyCommand.CommandType := CommandType.text;
MyCommand.ExecuteNonQuery;
Connection.Close;
MyCommand.Dispose;
Connection.Dispose;
end;

حالا هر نوع "کوئری بدون پاسخ" رو میتونید اجرا کنید مثلا:


irExecuteNonQuery('insert into ...');'
Or
irExecuteNonQuery('update ...');

ali643
شنبه 19 اردیبهشت 1383, 19:46 عصر
مرسی علی آقا :wink:

ali643
شنبه 19 اردیبهشت 1383, 22:53 عصر
سلام
علی آقا این Error رو میده
نمی دونم واسه چی
اما خیلی از خواصشو این ور اون ور کردم نشد که نشد
http://img53.photobucket.com/albums/v161/Delphi_Online/Site/Config.jpg

SyntaxCheck
یک شنبه 20 اردیبهشت 1383, 23:43 عصر
سلام
دوست عزیز دوتا مطلب هست:
اول: کدی که من اینجا گذاشتم اگر خوب دقت کنید جهت استفاده در ران تایم آبجکتها رو ایجاد میکنه و عملی که شما برای استفاده از کد بنده در عکس ضمیمه انجام دادید کاملا اشتباهه. توجه کنید که آبجکتها در رانتایم ایجاد میشن و هیچ نیازی به درگ اند دراپ کردن در دیزاین تایم در اینجا نیست.
دوم: چیزی که بنده فراموش کردم این که در یوزز این سطر رو هم اضافه کنید:



uses System.Data,System.Data.OleDb

ali643
دوشنبه 21 اردیبهشت 1383, 04:26 صبح
سلام علی آقا
یه وقت نگی این چقدر گیر میده هاااااااااااااا :mrgreen:
البته تو Sqlserver یک دیتابیس بنام test ساختم و تو قسمت Tableهم یک جدول به نام Table1 ساختم
من تو مقدار ConnectionString اینو قرار میدم

ConnectionString:='database=Test;hostname=Loacl;Pr ovider=SQLOLEDB;username=sa;password=123456789';
حالا وقتی که میخوام اجرا کنم و مقداری را وارد کنم
Connection.Open; گیر میده
آیا نوشتن اینجوری ConnectionString درسته؟
مشکل احتمالی کجاست
مرسی عزیز
شب خوش
:kiss: :flower:

SyntaxCheck
دوشنبه 21 اردیبهشت 1383, 10:39 صبح
سلام
کانکشن استرینگ رو مانند چیزی که در زیر نوشتم اصلاح کنید. بنابر این فانکشن بصورت زیر در میاد:


procedure irExecuteNonQuery(SQL:string);
var
ConnetionString: String;
Connection: OleDbConnection;
MyCommand: OleDbCommand;
begin
ConnetionString := 'Provider=SQLOLEDB.1;Data Source=localhost;Initial Catalog=test;Persist Security Info=False;User ID=sa';
Connection := OleDbConnection.Create(ConnetionString);
Connection.Open;
MyCommand := OleDbCommand.Create(SQL,Connection);
MyCommand.CommandType := CommandType.text;
MyCommand.ExecuteNonQuery;
Connection.Close;
MyCommand.Dispose;
Connection.Dispose;
end;


برای استفاده کردن از این فانکشن هم به این صورت عمل کنید برای مثال اگر اسم تیبل شما Table1 باشه:



irExecuteNonQuery('insert into table1...');


نکته: هیچ نیازی به Open کردن کانکشن توسط خود شما نیست، اگر دقت کنید کانکشن در فانکشن فوق Open میشه.

ali643
دوشنبه 21 اردیبهشت 1383, 23:22 عصر
سلام
مرسی علی آقا بابات اینکه وقت می ذارید

من این کوئری رو اینجوری می نویسم error میده

irExecuteNonQuery('Insert into Table1(name,famil)values('Reza','amiri')');

ولی اینجوری که مینویسم اجرا میشه مگه شکل صحیح همون بالایی نیست

irExecuteNonQuery('Insert into Table1(name,famil)values("Reza","amiri")');

هنوز موفق به insert کردن نشدم :cry:

SyntaxCheck
سه شنبه 22 اردیبهشت 1383, 02:39 صبح
سلام
در زبان پاسکال برای اینکه در یک استرینگ یک تک کوتیشن مارک رو بخواهیم داشته باشیم باید در محل مذکور دوبار تک کوتیشن رو تکرار کنیم. کد شما بصورت زیر میشه:



irExecuteNonQuery('Insert into Table1(name,famil)values(''Reza'',''amiri'')');

ali643
سه شنبه 22 اردیبهشت 1383, 03:23 صبح
:kiss: :kiss: :flower: :flower: :kiss: :kiss:
مرسی علی آقا
خیلی وقت گذاشتی :flower: :kiss:
حالا یه مسئله که دارم بهش فکر می کنم اینه که برای نشون دادن فیلدها تو یک گرید باید در دیزاین تایم این کارو انجام بدیم یا در ران تایم

SyntaxCheck
پنج شنبه 24 اردیبهشت 1383, 03:19 صبح
سلام
من به این صورت عمل میکنم:
- طراحی ظاهر جدول و شکل نمایش فیلدها در دیزاین تایم
- bind کردن دیتا در رانتایم

امیر-نا
سه شنبه 05 خرداد 1383, 01:05 صبح
یه سوال : چه جوری میشه که یه بانک اکسس رو آدرس دهی کرد یعنی مثلا در شاخه /data در
شاخه مربوطه آدرس دهی کرد.
البته یه تابعی پیدا کردم Request.MapPath(' '); ژیدا کردم ولی نمی دونم چه جوری میشه یه راهنمایی بکنین؟؟؟؟



ممنون