على برايسم اخي الكريم
اما بخصوص الكود فانه بسي شارب بسبب تأخري في تحميل البرايسم
نقطة اخرى ...
لماذا لا نخزن صورة للممول في القاعدة او لرمز الشركة الممولة?? :)
العمل كثير و الوقت قليل أعاننا الله
على برايسم اخي الكريم
اما بخصوص الكود فانه بسي شارب بسبب تأخري في تحميل البرايسم
نقطة اخرى ...
لماذا لا نخزن صورة للممول في القاعدة او لرمز الشركة الممولة?? :)
العمل كثير و الوقت قليل أعاننا الله
السلام عليكم
ملاحظات جيد بارك الله فيك
اقتباسلماذا لا نخزن صورة للممول في القاعدة او لرمز الشركة الممولة??
نعم logo الشركة للاننه لا يهما الشخص الممول بل شركة التمويل ولكي نتعلم ايضا اضافة الصور في القاعدة عملتها سابقا على السي شارب
اخي طلال شكل النوافذ يبين لك ان كان بريسم او دلفي نت وانا انتضر منك النتيجة كي اعينك على الخطوة الموالية
**************************************************************
*** من له مشكلة في عرض بيانات الممول قبل المرور الى نقاط اخري ****
**************************************************************
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا
السلام عليكــم ورحمـة الله وبركاتــه ،،
اعتذر عن التأخير بسبب الانترنت
قمت بعمل اتصال بقاعدة البيانات والامور بخير والحمد لله
وكنت احاول ادخال البيانات الى القاعدة عن طريقparameterse ????
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO Fournisseurs');
SQL.Add('( idx,nom,TelephoneTel,Asresse,Email,SitWeb,Remargues)');
SQL.Add(' Values');
SQL.Add('(:P1,:P2,:P3,:P4,:P5,:p6)');
Prepared;
Parameters.ParamByName('P1').Value := Edit1.Text;
Parameters.ParamByName('P2').Value := Edit2.Text;
Parameters.ParamByName('P3').Value := Edit3.Text;
Parameters.ParamByName('P4').Value := Edit4.Text;
Parameters.ParamByName('P5').Value := Edit5.Text;
Parameters.ParamByName('P6').Value := Edit5.Text;
ExecSQLلم انتبه ان المطلوب في الصفحة السابقة
سأحاول من جديد :wub:
تم تعديل هذه المشاركة بواسطة طلال بلال في 24 مارس 2009 في 20:20
اخي علي
وهل نحتاج الى نفس الامر مع VCL
اضفت Query في قاعدة البيانات .
السلام عليكم
مرحبا اخي طلال
عمل جيد في عملت العرض لكن هل استطعت تنفيذ الاجراء المخزن لعمليت الاضافة .
ارجوا ارفاق المحاولة كي اصححها
----------------------------------------------------------------------------------
لا حول ولا قوة الا بالله اين مشاركاتكم يا اهوة لحد الان اري الا 3 محاولات لعلي و طلال و
هذا اول مشروع لي سواء في البريسم او vcl.net
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 25 مارس 2009 في 03:39
الحمد لله رجع الانترنت
اخوي زكيري اواجه مشكلة بنسخة البريسم ، ساحاول اصلاحها اليوم ان شاءالله .
السلام عليكم
متأسف يا جماعة الانترنت كان مقطوع حتى الان شبك و انها 2 و النصف صباحا
تم عمل الازرار المطلوبة بسي شارب 2005 و سيكوال سيرفر 2005
ارجو تصحيح الاخطاء في حالة وجودها :D
تم تعديل هذه المشاركة بواسطة fkugd2003 في 25 مارس 2009 في 09:44
العمل كثير و الوقت قليل أعاننا الله
اعتذارك مقبول اخ محمد . لكن ارجوا ان تلحق بنا في اقرب وقت بارك الله فيك .
مشكورين
اخ طلال لكن لم تتقيد بالمطلوب و هو تنفيذ الاجراء المخزن في القاعدة وفي الدلفي نت او win32 هناك مكونين لعمل هذا
TADOCOMMAND
TADOSTOREDPROC
نحن استعملنا ما يشبه الاول في البريسم لكن المنصوح به في الدلفي استعمال المكون الثاني كما ارجوا ان تنشأ المكونات مبرمجيا
وساجد الوقت ان شاء الله لنعمل سويا .
اخ fkugd2003 جيد على هذا الحمس الراءع لاكمال المشروع لم اري السورس الان لكن ف المساء ان شاء الله.
----------------------------------------------------------------------------------------------------------------
الخلاصة :
1-قمنا بانشاء واجهة رئيسية
2-عمل اتصال مع جدول الامول وعرض المحتوي في datagrid
3-تلوين اسطر datagrid
4-انشانا واجهة الممول عند النقر على زر الاضافة او زر التغيير نعرض هذه الاخيرة
5-زر الحفظ يقوم بتنفيذ اجراء مخزن لعملية الاضافة او عمليه التغيير حسب الزر المضغوط عليه
-----------------------------------------------------------------------------------------------------------------
لم يبقى الا :
1-وضع صورة المؤسسة اي نضيف حقل من نوع image
2-وضع اجراء التغيير في قاعدة البيانات .
3-عملية الفلترة عن الممولين المفعلين في النافة الرءيسية بوضع radiobutton مفعل /غير مفعل/ مغلق عند الاختبار نقوم بالفلترة .
------------------------------------------------------------------------------------------------------------------
بعدها ننتقل الى جدول اخر .
شكرا
انشىء المكونات برمجيا , باستخدام TADOSTOREDPROC
مع ان خبرتي كبيرة جدا في NET . الا انني لم اسمع بها من قبل , تصور
لكن سأحاول
fkugd2003 اخي ولا انت ايضا استعملت الطريقة المطلوبة وجدت الملف DataDataSet.xsd فعرفت انك استعملت الربط المنصل dataset dataadpter ولماذا قدمت لك الكلاس اذن .
يا اخوة اعلم ان طريقة الربط المنفصل او في الدلفي نت سحب مكونات على الفورم هي الاسهل نعم لكن نحن نمهد انفسنا بالتعامل مع البرمجية الشيئه لذاك عقدت الامور بطلبي لكن ليس الهدف ان شاء المشروع فقط بل تعمل طرق اخري في البرمج عن نفسي استعمل انشاء المكونات برمجيا الا عند الاضافة والتغير او في الطباعة وكنت استعمل مكونات adotable و كويري في العرض لكن سياتي يوم لا نستطيع فعل ذلك و خاصة في 3 طبقات و النت هبرنت التي تعتم عليها وغيرها من الفرم ورك لذلك اطلب من الاخوة الالتزام بالمطلوب .
وان كان هناك طلب من الاغلبية بان نبرمج بالطرق البسيطه و السيريع ليس عندي مانع ايضا
شكرا
اخي طلال في المرفق مثال ارجوا ان تكمل عليه
اعلمكم ان هذه الطريقة لم استعملها قط بالدلفي سابقا وكنت امزج بن البرمجة بالمكونات و انشاء مكونات برمجبا ولكن مع الدلفي نت سيعطين الفرصة لاستخدام OOP
و بالطبع البريسم و كطما قلت سابقا انها ستفيدنا في برمجة المواقع مع الاسبي نت ايضا
شكرا
اري لحد الان سوي الاخ علي الذي اتبع الخطوات بشكل جيد ارجوا ان تكمل يا عليلوا كود وضع رمز المؤسسة و كود عرض التسجيلا ت قبل عمليه التغير .
شكرا
يوم السبت ساجمع الاكواد ونختار الكود الجيد لنبدأ مرحلة جديدة
--------------------------------------------------------------
اخي محمد اين انت .. :resentful:
--------------------------------------------------------------
شوي حماس في العمل ياجماعة خلينا نكون من اواءل المحترفين في البريسم ان شاء الله .
اجراء تغيير الممول ارجوا اضافته الى القاعدة واضافة الحقول الناقصة
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,,Name> -- Create date: <Create Date,,> -- Description: <Description,,> -- ============================================= ALTER procedure [dbo].[UpadteFournisseurProc] ( @Nom varchar(50), @Telephone varchar(20), @Adresse varchar(50), @Email varchar(50), @SiteWeb varchar(50), @Situation varchar(10), @Remarques varchar(50) ) AS BEGIN UPDATE Fournisseurs SET Nom=@Nom,Telephone=@Telephone,Adresse=@Adresse,Email=@Email,SiteWeb=@SiteWeb,Situation=@Situation,Remarques=@Remarques END
متأسف اخ زكيري ربما لم اكن فاهم للمطلوب ذلك الوقت ساقوم بأعادة كتابة البرنامج يديويا و اعود
//---------------------//
ارجو ان اكون صحيحا هذه المرة :D
جاري العمل على اضافة الممول
وقد قمت بتحويل الكلاس المكتوبة ببرايسم الى سي شارب و ارجو تصحيح الكود في حالة وجود اخطاء
هذه محاولتي و ارجو ان لا اكون مخطئا :cry:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace GestionPharmacie
{
class SqlClient
{
private int _iNbRows;
private int _iNbCols;
private SqlConnection _sqlCnx;
private SqlCommand _sqlCmd;
private SqlDataReader _sqlReader;
private SqlTransaction _sqlTransac;
private SqlDataAdapter _sqlDA;
private DataSet _sqlDs;
public SqlClient()
{
_iNbRows = 0;
_iNbCols = 0;
_sqlCnx = new SqlConnection();
_sqlCmd = new SqlCommand();
_sqlReader = null;
_sqlDs = new DataSet();
}
public bool Connect(string sConnection)
{
try {
_sqlCnx.ConnectionString = sConnection;
_iNbCols = 0;
_iNbRows = 0;
_sqlCnx.Open();
return true;
}catch(Exception){
return false;
}
}
public int NbRows()
{
return _iNbRows;
}
public int NbCols()
{
return _iNbCols;
}
public SqlTransaction SqlTrans()
{
return _sqlTransac;
}
public DataSet SqlDs()
{
return _sqlDs;
}
public SqlConnection SqlCnx()
{
return _sqlCnx;
}
public bool Disconnect()
{
try {
_sqlCnx.Close();
return true;
}
catch (Exception) {
return false;
}
}
public void DemarrerTransaction()
{
_sqlTransac = _sqlCnx.BeginTransaction();
_sqlCmd.Transaction = _sqlTransac;
}
public void ValiderTransaction()
{
_sqlTransac.Commit();
}
public void AnnulerTransaction()
{
_sqlTransac.Rollback();
}
public Object getQueryResult(string sSQL)
{
Object[,] oArrResult;
int i;
_sqlCmd = new SqlCommand(sSQL, _sqlCnx);
_sqlReader = null;
_sqlReader = _sqlCmd.ExecuteReader();
_iNbRows = 0;
_iNbCols = _sqlReader.FieldCount;
// Initialisation du tableau de retour
while (_sqlReader.Read()){
_iNbRows++;
}
oArrResult = new Object[_iNbRows,_iNbCols];
_sqlReader.Close();
// Remplissage du tableau de retour
try {
_sqlReader = _sqlCmd.ExecuteReader();
i = 0;
/*while (_sqlReader.Read()) {
for (int j = 0; j < _iNbCols; j++) {
if (! _sqlReader.IsDBNull(j))
//oArrResult[i,j] = _sqlReader.GetSqlValue(j)
else
//oArrResult[i,j] = "";
}
}*/
_sqlReader.Close();
_sqlCmd = null;
_sqlReader = null;
return oArrResult;
}
catch (Exception) {
return null;
}
}
public string Remplir(string sSQL)
{
string empty = "";
_sqlDs.Clear();
try {
_sqlDA = new SqlDataAdapter(sSQL,_sqlCnx);
_sqlDA.Fill(_sqlDs);
_sqlDA.Dispose();
return empty;
}catch(Exception){
return null;
}
}
public bool nonQueryOrder(string sSQL)
{
_sqlCmd =new SqlCommand(sSQL, _sqlCnx);
try {
_sqlCmd.ExecuteNonQuery();
return true;
}
catch (Exception) {
return false;
}
_sqlCmd = null;
}
}
}تم تعديل هذه المشاركة بواسطة fkugd2003 في 26 مارس 2009 في 06:00
العمل كثير و الوقت قليل أعاننا الله
في هذه الرابطة تجد مصدر هذه الكلاس
عندما كنت اتعلم السي شارب نصحني بها احد المحترفين و قال ان لم تعمل على قاعدة بيانات شئية لا تستعمل الربط المنفصل ربما فعلا مع سكل سرفر او اكسس يشتغل بلا مشاكل لكن ان غيرت القاعدة تفاجأه بالنتيجة وانصحك ب هده
http://files.codes-sources.com/fichier.asp...assSqlClient.cs
لا زلت متأخر عنكم كثير اخوي زكيري .
أخيرا اشتغل البروجكت ولا اعلم اين المشكلة .
اليوم اقرأ الكود كاملا ، وساحاول اللحاق بكم ، ربما سأبدأ معكم في المرحلة الثانية ، لاني احتاج الى بعض الوقت لفهم ما قمتم بعمله .
تم تعديل هذه المشاركة بواسطة أبو محمـد في 26 مارس 2009 في 12:07
اخي زكيري لم تخبرني اذا كنت اسير في الطريق الصحيح ام لا
اما بخصوص الكلاس فانا في خارج المنزل حاليا عندما اصل للمنزل اراجعها و قد قمت ببعض التعدبلات للكلاس التي ارفقتها عندما انتهي منها سوف ارسلها ان شاء الله
العمل كثير و الوقت قليل أعاننا الله
السلام عليكم
اقتباسخي زكيري لم تخبرني اذا كنت اسير في الطريق الصحيح ام لا
من حيث النتيجه عملك جيد لكن من جهة المطلوب كان عليك استعمال الكلاس فقط
اري ان الحركة في المشروع بطيئة جدا و ربما اني اخطأت في كوني اخترت الطريقة المتوسطة ليست الصعبه لانه هناك ما اصعب بكثير كان عليا ان استعمل في هذا المشروع الاول الاتصال المنفصل مع الداتا ست و السحب للمكونات الطريقة السهلة و في المشاريع القادمت نستعمل الاتصال المنفصل .
ما رايكم هل نغير ام نتابع
اما عن الطريقة المثلى في التعامل مع قواعد البيانات هي N-tier مع استعمال NHibernate وساتي يوم ان شاء الله اتعلمها حينها اعلمك اياها ان شاء الله
وهناك مثال وجدته و ستم دراسته عن قريب .
تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 26 مارس 2009 في 23:51
السلام عليكم , بقي كيف اصل الى الاجراء المخزن في sqlserver
var
_sqlCmd:TADOStoredProc;
O_SqlClient:TF_SqlClient;
BEGIN
لا ابق في هذه الطريقة اخي زكيري لانها لحد الان اجبرتني ان اقرأ الكثير و امضي الليل ساهرا :D
الصراحة و الله انا لا اعرف كيف الواحد يستطيع ان يرد لك بعضا من صنائعك و انا اقول لك جازاك الله بقدر ما نفعتني
اقتباسمن حيث النتيجه عملك جيد لكن من جهة المطلوب كان عليك استعمال الكلاس فقطاري ان الحركة في المشروع بطيئة جدا و ربما اني اخطأت في كوني اخترت الطريقة المتوسطة ليست الصعبه لانه هناك ما اصعب بكثير كان عليا ان استعمل في هذا المشروع الاول الاتصال المنفصل مع الداتا ست و السحب للمكونات الطريقة السهلة و في المشاريع القادمت نستعمل الاتصال المنفصل .
ما رايكم هل نغير ام نتابع
اما عن الطريقة المثلى في التعامل مع قواعد البيانات هي N-tier مع استعمال NHibernate وساتي يوم ان شاء الله اتعلمها حينها اعلمك اياها ان شاء الله
وهناك مثال وجدته و ستم دراسته عن قريب .
لا ابق في هذه الطريقة اخي زكيري لانها لحد الان اجبرتني ان اقرأ الكثير و امضي الليل ساهرا :D
الصراحة و الله انا لا اعرف كيف الواحد يستطيع ان يرد لك بعضا من صنائعك و انا اقول لك جازاك الله بقدر ما نفعتني
اما بخصوص المشروع فقد استعملت الكلاس فقط فأين وجدت اني لم استعملها ؟؟؟؟
قمت باضافة ميثود جديدة الى كلاس الاتصال لتبسيط تنفيذ دوال سيكول
public bool ExecuteStoredProcedure(string sSqlCommand, params ParametersDescriptor[] list) {
_sqlCmd = new SqlCommand(sSqlCommand, _sqlCnx);
_sqlCmd.CommandType = CommandType.StoredProcedure;
//now retreive parameters
for (int i = 0; i < list.Length; i++) {
_sqlCmd.Parameters.Add(
((ParametersDescriptor) list).Parameter,
((ParametersDescriptor) list).DBType,
((ParametersDescriptor) list).Size
);
}
ParametersDescriptor p;
for (int i = 0; i < list.Length;i++ )
{
p = ((ParametersDescriptor)list);
if (p.DBType == SqlDbType.Image){
_sqlCmd.Parameters[p.Parameter].Value = p.binaryValue;
}
else{
_sqlCmd.Parameters[p.Parameter].Value = p.Value;
}
}
try
{
_sqlCmd.ExecuteNonQuery();
return true;
}
catch (Exception)
{
return false;
}
_sqlCmd = null;
}تقوم بارسال الباراميتر في كائن ParametersDescriptor و هذا تعريفه
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
namespace GestionPharmacie
{
public class ParametersDescriptor
{
public string Parameter;
public SqlDbType DBType;
public int Size;
public string Value;
public ParametersDescriptor(string _parameter, SqlDbType _dbType, int _size, string _value)
{
Parameter = _parameter;
DBType = _dbType;
Size = _size;
Value = _value;
}
}
}و هذه طريقة للاستعمال
private void button1_Click(object sender, EventArgs e)
{
GestionPharmacie.SqlClient o_SqlClient = new GestionPharmacie.SqlClient();
o_SqlClient.Connect(ConnStr);
ParametersDescriptor[] listParameters =
new ParametersDescriptor[] {
new ParametersDescriptor("@Nom", SqlDbType.VarChar, 50, txtNom.Text),
new ParametersDescriptor("@Telephone", SqlDbType.VarChar, 50, txtTelephone.Text),
new ParametersDescriptor("@Adresse", SqlDbType.VarChar, 50, txtAdresse.Text),
new ParametersDescriptor("@Email", SqlDbType.VarChar, 50, txtEmail.Text),
new ParametersDescriptor("@SiteWeb", SqlDbType.VarChar, 50, txtSiteWeb.Text),
new ParametersDescriptor("@Situation", SqlDbType.VarChar, 10, cbSituation.Text),
new ParametersDescriptor("@Remarques", SqlDbType.VarChar, 50, txtRemarques.Text)
};
o_SqlClient.ExecuteStoredProcedure("AddFournisseurProc",listParameters);
o_SqlClient.Disconnect();
this.Close();
}هل من تصحيح؟؟ :D
تم تعديل هذه المشاركة بواسطة fkugd2003 في 27 مارس 2009 في 04:27
العمل كثير و الوقت قليل أعاننا الله
جيد بقي الا ارفاق المشروع كي اطبقه و اري النتيجة
ياخ محمد وطلال و عادل و ..اين انتم
اخ على عنده جنازة و سيلحق بنا قريبا .
اين المحاولات .
ساقوم اليوم ان شاء الله باغلاق المرحة 1.1 وهي الممول ارجوا ان تقدموا اليوم كل ما لديكم و ساضع الكود كاملا وكلنا يكمل عليه و لا يكمل على اصدار اخر (نقطه نضام)
شكرا .
السلام عليكــم ورحمـة الله وبركاتــه ،،
متأسف على التأخر اخ عبد العالي لان الكهرباء كانت مقطوعة النهار كله -_-
في المرفقات ما قمت بعمله حاليا
اضافة الصور تعمل جيدا لكن احتاج الى تعديل DataGridView rows لكي تصير اكبر قليلا و تصغير الصورة على شكل thumbnail لكي تظهر بصورة جيدة
جاري العمل على التعديل و الاضافة للممول
العمل كثير و الوقت قليل أعاننا الله
sqlCmd:TADOStoredProc
البرنامج يتوقف عندي هنا . كيف يمكن تعريف الاجراء المخزن في قاعدت البيانات
تم تعديل هذه المشاركة بواسطة طلال بلال في 28 مارس 2009 في 12:09