MOJTABAATEFEH
یک شنبه 30 مهر 1391, 07:04 صبح
سلام دوستان عزیز من از دلفی استفاده میکنم و در برنامم بایستی یکسری عدد تصادفی تولید کنم و ترجیح دادم اینکار با خود SQL انجام بدم کد رو میزارم لطفا نظرات و خودتون برای بهینه شدن بفرمایید در ضمن کد زیر در اجراهای متوالی گهگاهی خطای زیر رو هم نمایش میده
با تشکر
An invalid floating point operation occurred.
DECLARE @counter smallint, @T1 INT, @N1 numeric(18,2), @T2 INT, @Time_Q1 INT, @Time_Q2 INT, @N2 numeric(18,2)
DECLARE @M1 Table(T1 INT, Time_Q1 INT, T2 INT, Time_Q2 INT)
SET @counter = 1;
WHILE @counter < 5
BEGIN
set @n1 = RAND()
set @n2 = RAND()
SET @T1 = (-1/0.3)*(LOG(1-@n1));
SET @T2 = (-1/0.3)*(LOG(1-@n2));
set @n1 = RAND()
set @n2 = RAND()
SET @Time_Q1 = (-1/0.3)*(LOG(1-@n1));
SET @Time_Q2 = (-1/0.3)*(LOG(1-@n2));
if (@Time_Q1 > 0) and (@T1 > 0) AND (@Time_Q2 > 0) and (@T2 > 0)
begin
INSERT INTO @M1 (T1, Time_Q1, T2, Time_Q2) SELECT @T1 T1, @Time_Q1 Time_Q1 , @T2 T2, @Time_Q2 Time_Q2
SET @counter = @counter + 1
end
END;
SELECT * FROM @M1
با تشکر
An invalid floating point operation occurred.
DECLARE @counter smallint, @T1 INT, @N1 numeric(18,2), @T2 INT, @Time_Q1 INT, @Time_Q2 INT, @N2 numeric(18,2)
DECLARE @M1 Table(T1 INT, Time_Q1 INT, T2 INT, Time_Q2 INT)
SET @counter = 1;
WHILE @counter < 5
BEGIN
set @n1 = RAND()
set @n2 = RAND()
SET @T1 = (-1/0.3)*(LOG(1-@n1));
SET @T2 = (-1/0.3)*(LOG(1-@n2));
set @n1 = RAND()
set @n2 = RAND()
SET @Time_Q1 = (-1/0.3)*(LOG(1-@n1));
SET @Time_Q2 = (-1/0.3)*(LOG(1-@n2));
if (@Time_Q1 > 0) and (@T1 > 0) AND (@Time_Q2 > 0) and (@T2 > 0)
begin
INSERT INTO @M1 (T1, Time_Q1, T2, Time_Q2) SELECT @T1 T1, @Time_Q1 Time_Q1 , @T2 T2, @Time_Q2 Time_Q2
SET @counter = @counter + 1
end
END;
SELECT * FROM @M1