السلام عليكم ايها الاخوه الافاضل
عندي سؤال يتلخص في كيفيه اضافه المتغيرات مثل اسم السيرفر واسم قاعده البيانات في اختصار لبرنامج مثال :-
PHP كود :
c:\program files\program\program.exe" server=server_name db=database_name"
مع العلم ان هذا يوجد داخل اختتصار في حقل target ارجوا الافاده لاهميه الموضوع
سؤال اخر اخوتي
البرنامج الذي املكه يقوم بالدخول على حساب sa على sql وهو حساب مدير admin ويملك كل الصلاحيات فهل من طريقه للدخول عليه ولكن تكون قاعده البيانات للقراءه فقط؟
وهل لو قمت بانشاء user اخر غير sa ولكن حساب للقراءه فقط ولا يملك التعديل هل يمكن اضافه المتغيرات تلك داخل الاختصار في حقل target?
اشكركم لاتساع صدركم لي واتمنى من الله ان يكون في ميزان حسانتكم
والسلام عليكم ورحمة الله
بصراحة مستغرب، ما الفائدة وضع بيانات اسم السيرفر واسم قاعدة البيانات في حقل target
فكيف راح تستطيع قراءته إذا ما كان اسم السيرفر واسم قاعدة البيانات معروف في البرنامج من البداية!
اذا كان الاتصال من ملف نصي ممكن ،،
سبحان الله الناس تترك البساطة و تدهب للتعقيدات
ما الهدف وراء هاته العملية
و لدينا حلول ابسط
البرمجة قائمة على البساطة و كثرة التعقيد تولد المشاكل
بصراحة أنا مستغرب
السلام عليكم
الاخوه الاعضاء
انا نفسي مضايق اكتر منكو من البرنامج
بس الهدف ان البرمامج بيشتغل في اكتر من مكان على سيرفرات مختلفه باسماء مختلفه وكمان قاعده البيانات واحده بس باسماء مختلفه
ماهي قاعدة البيانات؟
هل Access or Sql server
هل انت تحاول تشغيل البرنامج الخاص بقواعد البيانات من خلال استخدام برنامج تنفيذي أخر؟
لو كانت تلك الحالة التي لديك إذن سيكون سهل جدا أن تضيف اي شئ لإسم البرنامج الخاص ب الداتا بيز بشرط ان تحذفه قبل تشغيلة ثم تعيد تسمية البرنامج مرة اخري قبل اغلاق البرنامج الرئيسي
[img=166x166]
[/img]
هذا المثال للتوضيح وليس هو البرنامج
حيث قام المبرمج باضافه مجموعه سويتشات تتحكم في connection string
فهل هناك موضوع يغطي كل تلك السويتشات مثل الدخول عن طريق حساب اخر غير SA ؟
(14-07-16, 09:18 PM)silverlight كتب : [ -> ]هل انت تحاول تشغيل البرنامج الخاص بقواعد البيانات من خلال استخدام برنامج تنفيذي أخر؟
لو كانت تلك الحالة التي لديك إذن سيكون سهل جدا أن تضيف اي شئ لإسم البرنامج الخاص ب الداتا بيز بشرط ان تحذفه قبل تشغيلة ثم تعيد تسمية البرنامج مرة اخري قبل اغلاق البرنامج الرئيسي
اخي سيلفر شكرا لاهتمامك
البرنامج يقوم بالاتصال المباشر بسيكول 2000 على مستخدم SA
انا اريد معرفه اذا كان بالامكان اضافه سويتش جديد يمككني من الدخول بالبرنامج الى قاعده البيانات عن طريق يوسر غير SA
يكون للقراءه فقط وذلك لان بعض الموظفين لا اريدهم ان يقومو اثناء تشغيل البرنامج بالكتابه داخل قاعده البيانات .. فقط استرجاع بيانات
شكرا لك
(15-07-16, 06:24 AM)الكاتب كتب : [ -> ]كم ذكر الاخ حريف هاته الطريقه الانسب مسار واحد في مجلد بالسي تم متغير واحد عام على كامل المشروع وتبقى المشكله أن جملة الاتصال تكون مكشوفه والحل بتشفير الجمله ثم فكها داخل المشروع قبل اي عملية اتصال وليس فك تشفيرها في الملف ذاته (:
شكرا اخي الفاضل للمرور الكريم
البرنامج موجود بالفعل وتم برمجته من وقت طويل ... والذي اقوم به محاوله لتنويع قدراته .. كان يكون هناك امكانيه لاستعمال switches جديده تقوم بالدخول الى قاعده البيانات عن طريق user مختلف عن SA
شكرا ليك اخي الكريم
(14-07-16, 04:32 PM)الوادي كتب : [ -> ]بصراحة مستغرب، ما الفائدة وضع بيانات اسم السيرفر واسم قاعدة البيانات في حقل target
فكيف راح تستطيع قراءته إذا ما كان اسم السيرفر واسم قاعدة البيانات معروف في البرنامج من البداية!
شكرا اخي الكريم لمرورك
البرنامج يستخدم في اكثر من مكان وعلى اسماء مكاتب مختلفه وقواعد بيانات باسماء مختلفه لذا قام المبرمج من فتره طويله جدا تقترب من11 عام بانشاء هذا البرنامج وهو من قام بوضع الكونكشن داخل التارجت
السؤال هو هل يوجد طريقه لتغيره ام انه قام بصنع هذه السوتشات داخل البرنامج
وتقبل فائق احترامي وتقديري
يعني أنت تقصد من البداية اختصار لملف البرنامج Shortcus مع إضافات في الخاصية Target
هذا الكود لزر يقوم بانشاء اختصار للبرنامج كالذي بالصورة مع توضيح أماكن البيانات
PHP كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Using openFileDialog1 As New OpenFileDialog
openFileDialog1.Title = "حدد البرنامج الأساسي"
openFileDialog1.Filter = "Programs (*.exe)|*.exe"
If openFileDialog1.ShowDialog = MsgBoxResult.Ok Then
Dim serverName As String
serverName = InputBox("أدخل اسم السيرفر")
If serverName.Trim = "" Then
MsgBox("لم تدخل اسم السيرفر ويجب البدء من جديد")
Return
End If
Dim databaseName As String
databaseName = InputBox("أدخل اسم قاعدة البيانات")
If serverName.Trim = "" Then
MsgBox("لم تدخل اسم قاعدة البيانات ويجب البدء من جديد")
Return
End If
Using saveFileDialog1 As New SaveFileDialog
saveFileDialog1.Title = "إكتب إسما للإختصار والذي سيشاهده المستخدم"
saveFileDialog1.Filter = "Shortcuts (*.lnk)|*.lnk"
If saveFileDialog1.ShowDialog = MsgBoxResult.Ok Then
Dim shl As Object = CreateObject("WScript.Shell")
' اسم لملف الاختصار '
Dim lnk As Object = shl.CreateShortcut(saveFileDialog1.FileName)
' Target: اسم ومسار ملف البرنامج مع المعلمات '
lnk.TargetPath = openFileDialog1.FileName
lnk.Arguments = "server=" & serverName & " " & "db=" & databaseName
' Start In: مسار ملف البرنامج '
lnk.WorkingDirectory = IO.Path.GetDirectoryName(openFileDialog1.FileName)
' اسم الملف بدون المسار مع فهرس ايقونة البرنامج والتي عادة تكون صفر '
lnk.IconLocation = IO.Path.GetFileName(openFileDialog1.FileName) & ",0"
lnk.Save()
End If
End Using
End If
End Using
End Sub
طريقة عمل الكود عند تنفيذه:
أولا يطلب منك تحدد ملف البرنامج exe
ثانئا يطلب منك تكتب اسم السيرفر
ثالثا يطلب منك تكتب اسم قاعدة البيانات
أخيرا يطلب منك تكتب اسم لهذا الاختصار والذي سيشاهده المستخدم (وفي العادة ستحدد سطح المكتب مع كتابة الاسم)
يمكن التعديل على الكود بحيث بدلا من سؤالك في كل قيمة يصبح يأخد البيانات من مربعات نص TextBox
(15-07-16, 09:56 AM)الوادي كتب : [ -> ]يعني أنت تقصد من البداية اختصار لملف البرنامج Shortcus مع إضافات في الخاصية Target
هذا الكود لزر يقوم بانشاء اختصار للبرنامج كالذي بالصورة مع توضيح أماكن البيانات
PHP كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Using openFileDialog1 As New OpenFileDialog
openFileDialog1.Title = "حدد البرنامج الأساسي"
openFileDialog1.Filter = "Programs (*.exe)|*.exe"
If openFileDialog1.ShowDialog = MsgBoxResult.Ok Then
Dim serverName As String
serverName = InputBox("أدخل اسم السيرفر")
If serverName.Trim = "" Then
MsgBox("لم تدخل اسم السيرفر ويجب البدء من جديد")
Return
End If
Dim databaseName As String
databaseName = InputBox("أدخل اسم قاعدة البيانات")
If serverName.Trim = "" Then
MsgBox("لم تدخل اسم قاعدة البيانات ويجب البدء من جديد")
Return
End If
Using saveFileDialog1 As New SaveFileDialog
saveFileDialog1.Title = "إكتب إسما للإختصار والذي سيشاهده المستخدم"
saveFileDialog1.Filter = "Shortcuts (*.lnk)|*.lnk"
If saveFileDialog1.ShowDialog = MsgBoxResult.Ok Then
Dim shl As Object = CreateObject("WScript.Shell")
' اسم لملف الاختصار '
Dim lnk As Object = shl.CreateShortcut(saveFileDialog1.FileName)
' Target: اسم ومسار ملف البرنامج مع المعلمات '
lnk.TargetPath = openFileDialog1.FileName
lnk.Arguments = "server=" & serverName & " " & "db=" & databaseName
' Start In: مسار ملف البرنامج '
lnk.WorkingDirectory = IO.Path.GetDirectoryName(openFileDialog1.FileName)
' اسم الملف بدون المسار مع فهرس ايقونة البرنامج والتي عادة تكون صفر '
lnk.IconLocation = IO.Path.GetFileName(openFileDialog1.FileName) & ",0"
lnk.Save()
End If
End Using
End If
End Using
End Sub
طريقة عمل الكود عند تنفيذه:
أولا يطلب منك تحدد ملف البرنامج exe
ثانئا يطلب منك تكتب اسم السيرفر
ثالثا يطلب منك تكتب اسم قاعدة البيانات
أخيرا يطلب منك تكتب اسم لهذا الاختصار والذي سيشاهده المستخدم (وفي العادة ستحدد سطح المكتب مع كتابة الاسم)
يمكن التعديل على الكود بحيث بدلا من سؤالك في كل قيمة يصبح يأخد البيانات من مربعات نص TextBox
شكرا على الرد اخي الوادي
بس انا البرنامج لما يتم تثبيته في program files انا ادخل اعمله اختصار لسطح المكتب ... وبعدين اروح ادخل على خصائص الاختصار واكتب في تارجت بعد مسار البرنامج اكتب
server=server_name db=database_name
فهل هذه السويتشات موجود ليها كود في الفيجوال بيسك ؟
وشكرا ليك على الكود