المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
السلام عليكم
في برنامجي واجهة نفس الامر هناك حل و هو عدم نقل القيمة مع شرط تحديد نوع البرامتر كما قال الاخ
PHP كود :
if not DM1.source.Fields[i].isnull then
Params[i].Value := DM1.source.Fields[i].Value;
في حالة كان الحقل null لا تقم بنقل القيمة
بالنسبة للتاريخ التاريخ 30/12/1899 هو 0 اي 30/12/1899 = 0
لذلك نفس الامر تحقق اذا كان التاريخ 0 لا تقم بنقل القيمة غير ذلك انقل القيمة
بالتوفيق
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 92
المواضيع 21
:
: 0
الإنتساب : Nov 2015
(18-04-2018, 01:24 PM)S.FATEH كتب : السلام عليكم
في برنامجي واجهة نفس الامر هناك حل و هو عدم نقل القيمة مع شرط تحديد نوع البرامتر كما قال الاخ
PHP كود :
if not DM1.source.Fields[i].isnull then
Params[i].Value := DM1.source.Fields[i].Value;
في حالة كان الحقل null لا تقم بنقل القيمة
بالنسبة للتاريخ التاريخ 30/12/1899 هو 0 اي 30/12/1899 = 0
لذلك نفس الامر تحقق اذا كان التاريخ 0 لا تقم بنقل القيمة غير ذلك انقل القيمة
بالتوفيق
السلام عليكم و رحمة الله و بركاته
اولا اشكرك على الاهتمام اخي ولكن ما فهمت قصدك ممكن توضح اكثر و جزاك الله الف خير
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك
المشاركات : 126
المواضيع 9
:
: 12
الإنتساب : Oct 2015
كما قال الاخ
PHP كود :
var
i : integer;
Begin
DM1.Source.close;
DM1.Source.open;
DM1.Source.first;
While Not DM1.Source.eof Do
Begin
With DM1.destination Do
Begin
Active:=False;
SQL.Clear;
SQL.Add('Insert into customer (N°, FIRSTNAME,LASTNAME,CITY,COUNTRY,date_enr)');
SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5, :b6)');
For i:= 0 to 6 do
if not DM1.source.Fields[i].isnull then
Begin
Params[i].DataType := DM1.source.Fields[i].DataType;
Params[i].Value := DM1.source.Fields[i].Value;
End;
Prepare;
ExecSQL;
End;
DM1.source.next;
End;
المشاركات : 92
المواضيع 21
:
: 0
الإنتساب : Nov 2015
(17-04-2018, 11:48 PM)Ben.Ja كتب : أظن ان للتخلص من مشكل الفراغ يجب ذكر نوع بيانات الparameter قبل نقل البيانات اليها , وهذا تم من خلال السطر
PHP كود :
Params[i].DataType := DM1.source.Fields[i].DataType;
لكن ربما يجب ذكر نوع بيانات كل parameter على حدة, اي هكذا بدون الحلقة
أيضًا, هل خانة الdate في جدول destination بها خاصية Not null؟
السلام عليكم
ياخي لا توجد خاصية not null
جربت الكود و دائما نفس المشكل في حقل تاريخ الفراغ (les valeurs nulles) يعوضه بلتاريخ 30/12/1899
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك
المشاركات : 117
المواضيع 1
:
: 38
الإنتساب : May 2017
ما هي مكونات الاتصال التي تستخدمها؟
هل يمكنك مشاركة الكود لتسهيل حل المشكل؟
المشاركات : 92
المواضيع 21
:
: 0
الإنتساب : Nov 2015
(18-04-2018, 10:10 PM)Ben.Ja كتب : ما هي مكونات الاتصال التي تستخدمها؟
هل يمكنك مشاركة الكود لتسهيل حل المشكل؟
السلام عليكم استعمل ما يلي TQuery, TffQuery
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
السلام عليكم جرب هذا
الكود غير مجرب لا امتلك المكونات و لا قاعدة البيانات
طبقت الفكرة التي قلتها سابقا
PHP كود :
var
i: Integer;
begin
Source.close;
Source.open;
Source.first;
while not Source.eof do
begin
destination.SQL.Clear;
destination.SQL.Add('Insert into customer (N°, FIRSTNAME,LASTNAME,CITY,COUNTRY,date_enr)');
destination.SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5, :b6)');
for i:= 0 to Source.FieldCount-1 do
begin
destination.Params[i].DataType := source.Fields[i].DataType;
if not source.Fields[i].IsNull then
destination.Params[i].Value := source.Fields[i].Value
else
if source.Fields[i] is TDateTimeField then
if not source.Fields[i].AsDateTime = 0 then
destination.Params[i].Value := source.Fields[i].Value
else
destination.Params[i].Value := source.Fields[i].Value;
destination.ExecSQL;
end;
source.next;
end;
end;
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 92
المواضيع 21
:
: 0
الإنتساب : Nov 2015
18-04-2018, 11:29 PM
(آخر تعديل لهذه المشاركة: 19-04-2018, 12:05 AM بواسطة AbdouProg.)
السلام عليكم
سوف اجرب الكود بارك الله فيك اخي
السلام عليكم
اخي جربت الكود اخي لا يعمل
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك
المشاركات : 975
المواضيع 50
:
: 218
الإنتساب : Feb 2008
ممكن توضح اكثر الخطأ لا يزال لا ينقل الـ null و date
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
المشاركات : 92
المواضيع 21
:
: 0
الإنتساب : Nov 2015
19-04-2018, 12:17 AM
(آخر تعديل لهذه المشاركة: 19-04-2018, 12:18 AM بواسطة AbdouProg.)
تقريبا نفس الفكرة التي طرحتها اخي
FATAH هدا الكود الدي اضعه بين يديكم يعمل جيدا غير ان المشكل الوحيد و العويص هو ان الفارغات les valeurs nulles في الحقل source تنقل عبارة عن تاريخ (30/12/1899) في destination
PHP كود :
var
i : integer;
Begin
DM1.Source.close;
DM1.Source.open;
DM1.Source.first;
While Not DM1.source.eof Do
Begin
With DM1.destination Do
Begin
Active:=False;
SQL.Clear;
SQL.Add('Insert into customer (N°, FIRSTNAME,LASTNAME,CITY,COUNTRY,date_enr)');
SQL.Add('Values (:b1 , :b2 , :b3 , :b4 , :b5, :b6)');
for i:= 0 to DM1.source.FieldCount-1 do
begin
if DM1.source.Fields[i].DataType in [ftDate,ftDateTime] then
begin
if DM1.source.Fields[i].isnull Then
begin
Params[i].Clear;
Params[i].Bound := TRUE;
Params[i].DataType := ftDateTime;
end
else
Params[i].DataType := DM1.source.Fields[i].DataType;
Params[i].Value := DM1.source.Fields[i].Value;
end
else
Params[i].DataType := DM1.source.Fields[i].DataType;
Params[i].Value := DM1.source.Fields[i].Value;
end;
ExecSQL;
End;
DM1.source.next;
End;
هل فهمت المقصود اخي fatah
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك