Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ASP + JScript + SQL = ???????????

21K
09 декабря 2006 года
dastrix
12 / / 09.12.2006
Господа Здраствуите !!!!!!!!!!
Есть проблема, связаная с синтаксисом JScript. Проблема в том что страничка писана на JScript под ASP 3.0 и на ней выполняется запрос с SQL (MS SQL SERVER 2000) таблицы
<%
<%@ LANGUAGE="JSCRIPT"%>

[COLOR="SeaGreen"]<!--Описание переменной-->[/COLOR]

var hours = date (RS.Fields("ActionDate"));//достал из таблицы №1

[COLOR="seagreen"]<!--Запрос с SQL -->[/COLOR]

CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferValue ON Offers.OfferID=OfferValue.OfferID WHERE Offers.ActionDate='"+hours"'";:confused: //Сравниваю значение переменной hours c таблицой №2
%>

Дело в том что в sql тип date надо заключать в [COLOR="red"]'[/COLOR] переменная [COLOR="Red"]'[/COLOR] т.е в аппострафы, с переменной этого я проделать не могу !!!!!!!!!! надо зделать что то вроде "'&+hours&'"; или "'+hours'";";

[COLOR="Red"][SIZE="4"]Подскажите как правильно описать переменную (JScript) в SQL Запросе?????????:confused: :confused: :confused: [/SIZE][/COLOR]
17K
09 декабря 2006 года
Сиреневый Ежик
9 / / 01.06.2006
ну уж если один плюс есть, то и второй бы поставить не помешало...
...WHERE Offers.ActionDate='" + hours + "'";
21K
09 декабря 2006 года
dastrix
12 / / 09.12.2006
ну уж если один плюс есть, то и второй бы поставить не помешало...
...WHERE Offers.ActionDate='" + hours + "'";




[COLOR="Red"] CMD.CommandText = CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferValue ON Offers.OfferID=OfferValue.OfferID WHERE Offers.ActionDate='" + hours + "'";[/COLOR]

[COLOR="DarkRed"]Тип ошибки:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting datetime from character string.[/COLOR]:confused: :confused: :confused:

21K
09 декабря 2006 года
dastrix
12 / / 09.12.2006
[COLOR="Green"]<%@ LANGUAGE="JSCRIPT"%>
<%

<!--Описание переменной-->

var hours = String (RS.Fields("OfferID"));//достал из таблицы №1

<!--Запрос с SQL -->

CMD.CommandText = "SELECT * FROM OfferPrice WHERE OfferID= "+onum; //Сравниваю значение переменной hours c таблицой №2
%>[/COLOR]

Этот кусок работает нормально только надо чтобы не по OfferID(String) а по ActionDate(Date):confused: :confused: :confused:

[COLOR="Red"]CMD.CommandText = CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferValue ON Offers.OfferID=OfferValue.OfferID WHERE Offers.ActionDate="+&+quot +hours +quot"";[/COLOR] еще один тоже не работает вариант

Вообщем вся запарка в [SIZE="6"][COLOR="Red"]' '[/COLOR][/SIZE]
Пишите еще варианты Заранее Спосибо
17K
09 декабря 2006 года
Сиреневый Ежик
9 / / 01.06.2006
можно попробовать вывести для начала эту переменную и посмотреть что в ней вообще находится, и то ли это что нужно
нужно чтоб строка была в понятном серверу формате, что то типа
ММ/дд/гггг чч:мм:сс вроде бы
337
09 декабря 2006 года
shine
719 / / 09.06.2006
dastrix , вместо того чтобы выводить значение переменной выводи полность SQL. SQL который получишь запускай через Quary Analizer и смотри как реагирует сервер на такой формат даты.
256
10 декабря 2006 года
foxweb
1.0K / / 27.07.2005
согласен с shine: отлаживай запросы какой-нибудь SQL оболочке и только потом переноси их в программу. на стадии отладки можно вместе с текстом сообщения об ошибке выводить и сам SQL запрос для проверки.
21K
10 декабря 2006 года
dastrix
12 / / 09.12.2006
:D
Цитата: shine
dastrix , вместо того чтобы выводить значение переменной выводи полность SQL. SQL который получишь запускай через Quary Analizer и смотри как реагирует сервер на такой формат даты.





Всем спосибо Сделал !!!!!!!!!
[COLOR="SeaGreen"]<%
[SIZE="3"] CMD = Server.CreateObject("ADODB.Command");
h2 = h1.getDay()+"."+h1.getMonth()+"."+h1.getFullYear();
CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferValue ON Offers.OfferID=OfferValue.OfferID WHERE Offers.ActionDate='"+h2+"'";
txt = CMD.CommandText;[/SIZE]
%>[/COLOR]:D :D
[COLOR="Red"]

Формат даты при вытягивание из базы был не правильным !!!!!![/COLOR]

Еще вариант описание пременной !!!!!!!
[SIZE="3"][COLOR="SeaGreen"]<%
dnext.setDate(fday + 1);
dn = dnext.getDate();
if (dn < 10) dn = "0" + dn;
mn = dnext.getMonth() + 1;
if (mn < 10) mn = "0" + mn;
[COLOR="DarkOrange"]sDate[/COLOR] = dn + "." + mn + "." + dnext.getFullYear();
%>[/COLOR][/SIZE]

21K
10 декабря 2006 года
dastrix
12 / / 09.12.2006
[COLOR="SeaGreen"]JavaScript[/COLOR] - http://doks.gorodok.net/?p=353&tmenu=y

Больше не чего и не надо!!!!!!!!!!
21K
11 декабря 2006 года
dastrix
12 / / 09.12.2006
[COLOR="#ff0000"]у меня есть два коннекта к 2-м таблицам и на них надосдаль один цикл[/COLOR]


Код:
<%

//первый коннект к  таблице №1 и в нем откравется цикл

  CMD = Server.CreateObject("ADODB.Command");
  CMD.CommandText =  "str_procedure'";
  CMD.CommandType =  adCmdStoredProc;
  CMD.ActiveConnection = DB;


  if(UserID > 0){
  CMD.Parameters.Append(CMD.CreateParameter("OfferID",adNumeric,adParamInput,10,UserID));
  }

  RS = CMD.Execute();

  while (!RS.EOF){
          i=20;
   
%>
<table id="tab1" BORDER=2 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>

  <td align="center">номера</td>
<%  
while (i<44) {
%>
  <td align="right"><%=Number(RS.Fields(++i))%></td>
<%
}
%>
  <td align="right"><%=Number(RS.Fields(46))%>&#210;&#251;&#241;.&#234;&#194;&#242;/&#247;</td>
<%

           RS.MoveNext();
     
     RS.Close();
  %>
 

  <%

  //второй коннект и цикл закрываем !!!!!!!!

  CMD = Server.CreateObject("ADODB.Command");
  CMD.CommandText = "str_procedure'";
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;


  if(UserID > 0){
  CMD.Parameters.Append(CMD.CreateParameter("OfferID",adNumeric,adParamInput,10,UserID));
  }

  RS = CMD.Execute();
  while(!RS.EOF){
          hours1 = String (RS.Fields(1));
          i=20;
       
%>

<tr STYLE="background: <%=sColor%>;">
  <td align="right">&#214;&#229;&#237;&#224;</td>
<%  
while (i<44) {
%>
  <td align="right"><%=RS.Fields(++i)%></td>

<%
}
%>
    <td ALIGN="center"><input type="button" id="numbut" width=40% value="&#211;&#228;&#224;&#235;&#232;&#242;&#252;" &#111;&#110;Click="brakeview()"></td>
<%
           RS.MoveNext();
             }
              }
     RS.Close();
%>


[COLOR="Red"][SIZE="3"]ругается на то что обьект закрыт!!!!! подскажите как корректно цикл замутить[/SIZE][/COLOR] :confused: :confused: :confused:
21K
13 декабря 2006 года
dastrix
12 / / 09.12.2006
Есть [SIZE="3"][COLOR="Red"]один [/COLOR][/SIZE]цикл и [COLOR="red"][SIZE="3"]две SQL[/SIZE][/COLOR] таблицы из которых надо выдернуть значения !!!!!!! Скрипт написан на [COLOR="Red"][SIZE="4"]JScript[/SIZE][/COLOR]

Код:
<%
  CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable1
  CMD.CommandText = "StoredProc1";
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;
 
  RS = CMD.Execute();
      while (!RS.EOF) {

%>
    <table>
//строим табл из значении коннекта SQLtable1
    </table>
<%

     RS.MoveNext();
   
   RS.Close(); 'закрываем первый коннект

  CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable2
  CMD.CommandText = "StoredProc2";
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;
 
  RS = CMD.Execute();

%>
    <table>
//строим табл из значении коннекта SQLtable2
    </table>
<%

     RS.MoveNext();
    } 'закрываем цикл
   RS.Close(); ' Закрываем второй коннект


[COLOR="red"][SIZE="4"]не пашет подскажите[/SIZE][/COLOR] !!!!!!!!!!!!!:confused: :confused: :confused:

как Сделать один [SIZE="4"][COLOR="SandyBrown"]While[/COLOR][/SIZE] НА 2 [COLOR="sandybrown"][SIZE="4"]SQL[/SIZE][/COLOR] Таблицы???????????
265
13 декабря 2006 года
Gauss
975 / / 20.02.2000
Получение данных должно происходить до тега <HTML>, а вывод данных после тега <BODY>. Получение данных внутри BODY работать не будет
21K
14 декабря 2006 года
dastrix
12 / / 09.12.2006
Цитата:
Получение данных должно происходить до тега <HTML>, а вывод данных после тега <BODY>. Получение данных внутри BODY работать не будет



если выдергивать данные из двух [COLOR="#ff0000"]SQL[/COLOR] таблиц [COLOR="#ff0000"]ДВУМЯ[/COLOR] циклами то скрипт [SIZE="2"][COLOR="#ff0000"]работает[/COLOR][/SIZE], так что дела здесь не в рассположении [COLOR="Red"]HTML[/COLOR] Тэгов


Код:
<%
  CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable1
  CMD.CommandText = "StoredProc1";
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;
 
  RS = CMD.Execute();
      while (!RS.EOF) { 'первый цикл

%>
    <table>
//строим табл из значении коннекта SQLtable1
    </table>
<%

     RS.MoveNext();
    } ' закрываем первый
   RS.Close(); 'закрываем первый коннект

  CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable2
  CMD.CommandText = "StoredProc2";
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;
 
  RS = CMD.Execute();
    while (!RS.EOF) { ' втрой цикл

%>
    <table>
//строим табл из значении коннекта SQLtable2
    </table>
<%

     RS.MoveNext();
    } 'закрываем второй цикл
   RS.Close(); ' Закрываем второй коннект
337
14 декабря 2006 года
shine
719 / / 09.06.2006
На какой объект ругается, что он закрыт?
21K
14 декабря 2006 года
dastrix
12 / / 09.12.2006
Цитата: shine
На какой объект ругается, что он закрыт?



[COLOR="#ff0000"][SIZE="4"]Исходник ------------->[/SIZE][/COLOR]

Код:
<!-- #include file="../Common/myheader.asp" -->

<link type="text/css" rel="stylesheet" href="Styles/Bids.css">

<script type="text/javascript" src="../JSSoft/Offers.js"></script>

</head>

<body bgcolor="rgb(250,250,250)">

<%
  var DB, CMD, RS, com;
  var nextDay = "";
  var adChar = 0x0081;
  var adNumeric = 0x0003;
  var adCmdStoredProc = 0x0004;
  var adParamInput = 0x0001;
  var adOpenForwardOnly = 0x0000;
  var adLockReadOnly =0x0001;
  var sValid = "";
  var iNom = 1;
  var sColor = "";
  var sUser = "";
  var UserID = 0;
  var OfferID = "";
  var OfferID1 = "";
  var usID = new Array();
  var usName = new Array();
  var uslen = 0;
  var i = 0;
  var isbids = 0;
  var onum = "";
  var &#111;&#110;um1= "";
    var &#111;&#110;um2= "";
  var hours = new Date();
  var hours1="";
  var sCommand = "sp_getuseroffers1";
  var sBrake = "sp_getuserbrakeoff1";
  var Status = "";
  var sAll = "0";
  var FirstDate = "";
  var dnext = new Date();
  var dn = "";
  var mn = "";

  nextDay = String(Request.QueryString("sDate"));
  sAll    = String(Request.QueryString("sAll"));

  if(sAll == "1"){
     sCommand = "sp_alluseroffers";
     sBrake   = "sp_alluserbrakeoff";
  }

  if(nextDay == "1") {
     dn = dnext.getDate();
     dnext.setDate(dn + 1);
     dn = dnext.getDate();
     if (dn < "10") dn = "0" + dn;
     mn = dnext.getMonth() + 1;
     if (mn < "10") mn = "0" + mn;
     nextDay = dn + "." + mn + "." + dnext.getFullYear();
  }

  DB = Server.CreateObject("ADODB.Connection");
  DB.ConnectionTimeout = 15;
  DB.CommandTimeout = 10;
  DB.Open("DSN=" + Session("dbname"),Session("dbuser"),Session("dbpwd"));

  RS = Server.CreateObject("ADODB.Recordset");
  RS.Open("sp_getshortuser", DB, adOpenForwardOnly, adLockReadOnly, adCmdStoredProc);

  if(!RS.EOF) {
     while(!RS.EOF){
       usID[uslen] = Number(RS.Fields("UserID"));
       usName[uslen] = String(RS.Fields("ShortName"));
       if(Session("UserID") == String(RS.Fields("UserCode"))) UserID = usID[uslen];
       uslen += 1;
       RS.MoveNext();
     }
     RS.Close();
  }

  i = 1;

  if(i > 0){
     UserID = 0;
     sCommand = "sp_getoffers1";
     sBrake = "sp_getbrakeoffers1";
     if(sAll == "1"){
        sCommand = "sp_alloffers";
        sBrake   = "sp_allbrakeoffers";
     }
     Status = "New";
  }

  CMD = Server.CreateObject("ADODB.Command");
  CMD.CommandText = sCommand;
  CMD.CommandType = adCmdStoredProc;
  CMD.ActiveConnection = DB;

  if(UserID > 0){
  CMD.Parameters.Append(CMD.CreateParameter("UserID",adNumeric,adParamInput,10,UserID));
  }

  CMD.Parameters.Append(CMD.CreateParameter("oType",adChar,adParamInput,1,"D"));
  CMD.Parameters.Append(CMD.CreateParameter("aDate",adChar,adParamInput,10,nextDay));

  if(sAll == "0"){CMD.Parameters.Append(CMD.CreateParameter("Status",adChar,adParamInput,7,Status));
  CMD.Parameters.Append(CMD.CreateParameter("Valid",adChar,adParamInput,1,"V"));
   }
  RS = CMD.Execute();
  if(!RS.EOF){
     isbids = 1;

%>
      <div id="div1" align="center">
         &#199;&#224;&#255;&#226;&#234;&#232; &#237;&#224; &#239;&#240;&#238;&#228;&#224;&#230;&#243;
      </div>
<table id="tab1" BORDER=2 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>
<%
    while (!RS.EOF) {
      i = 0;
      hours = Date(RS.Fields("ActionDate"));
      var h1 = new Date((RS.Fields("ActionDate")));
      while(i < uslen){
        if(RS.Fields(1) == usID) {sUser = usName; i = uslen;}
        i += 1;
      }
      sValid = "&#237;&#229;&#242;";
      if((RS.Fields(8) == "V") && (String(RS.Fields(9)).substr(0,3) == "New")) sValid = "&#228;&#224;";
      if(iNom > 0) {iNom = 0; sColor = "rgb(255,255,255)";}
      else {iNom = 1; sColor = "rgb(240,240,240)";}

%>


<%
        RS.MoveNext();
      }
      RS.Close();

i=0;
%>
<tr STYLE="background: rgb(208,208,208)" ALIGN="right">
  <td align="left">&#215;&#224;&#241;&#251;</td>
<%
while (i<24){
%>
  <td align="right"><%=(++i)%></td>
<%
}
%>
  <td align="right">&#209;&#243;&#236;&#236;&#251;</td>
  </TABLE>
<%
%>
<!--  ================================================================================  -->
<%
  CMD = Server.CreateObject("ADODB.Command");
  CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferValue ON Offers.OfferID=OfferValue.OfferID WHERE Offers.ActionDate='"+nextDay+"'";
  CMD.ActiveConnection = DB;


  if(UserID > 0){
  CMD.Parameters.Append(CMD.CreateParameter("OfferID",adNumeric,adParamInput,10,UserID));
  }

  RS = CMD.Execute();

  while (!RS.EOF){
          i=20;
          var w="1";

%>
<table id="tab1" BORDER=2 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>
<tr STYLE="background: <%=sColor%>;">
  <td align="center">&#210;&#251;&#241;.&#234;&#194;&#242;&#247;</td>
<%  
while (i<44) {
%>
  <td align="right"><%=Number(RS.Fields(++i))%></td>
<%
}
           RS.MoveNext();
     
     RS.Close();
  %>
<!--  ================================================================================  -->
  <%
 
  CMD = Server.CreateObject("ADODB.Command");

  CMD.CommandText = "SELECT * FROM Offers INNER JOIN OfferPrice ON Offers.OfferID=OfferPrice.OfferID WHERE Offers.ActionDate='"+nextDay+"'";
  txt = CMD.CommandText;
  CMD.ActiveConnection = DB;


  if(UserID > 0){
  CMD.Parameters.Append(CMD.CreateParameter("OfferID",adNumeric,adParamInput,10,UserID));
  }

  RS = CMD.Execute();
  if(!RS.EOF){
          hours1 = String (RS.Fields(0));
          i=20;
       
%>

<tr STYLE="background: <%=sColor%>;">
  <td align="right">&#214;&#229;&#237;&#224;</td>
<%  
while (i<44) {
%>
  <td align="right"><%=RS.Fields(++i)%></td>

<%
}
%>
    <td ALIGN="center"><input type="button" id="numbut" width=40% value="&#211;&#228;&#224;&#235;&#232;&#242;&#252;" &#111;&#110;Click="brakeview()"></td>
<%

           RS.MoveNext();
             }
             }
     RS.Close();
%>
<!--  ================================================================================  -->
<%
%>
 </TABLE>
<table id="tab1" BORDER=2 CELLPADDING=1 CELLSPACING=0 WIDTH=100%>

    <td align="right"> <%=hours1%> </td>
        <td align="right"> <%=hours%> </td>
                <td align="right"> <%=nextDay%> </td>
       

    </table>
<%
 
  }
    if(isbids < 1){
%>
      <div id="div1" align="center">
         &#205;&#224; &#243;&#234;&#224;&#231;&#224;&#237;&#237;&#251;&#233; &#238;&#239;&#229;&#240;&#224;&#246;&#232;&#238;&#237;&#237;&#251;&#233; &#228;&#229;&#237;&#252; &#239;&#240;&#229;&#228;&#235;&#238;&#230;&#229;&#237;&#232;&#255; &#238;&#242;&#241;&#243;&#242;&#241;&#242;&#226;&#243;&#254;&#242;
      </div>
<%
}
%>
<!-- #include file="../Common/myfooter.asp" -->


[COLOR="Red"]
Тип ошибки:
Active Server Pages, ASP 0113 (0x80004005)
Истекло время ожидания сценария
Превышено максимальное время, выделенное для выполнения сценария. Можно изменить это предельное значение, указав новое значение для свойства Server.ScriptTimeOut или воспользовавшись средствами администрирования IIS.
/tradenva/BigTrade/offers.asp[/COLOR]
337
14 декабря 2006 года
shine
719 / / 09.06.2006
Вставляй в свой код распечатки чтобы определить где именно ошибка.
21K
09 января 2007 года
dastrix
12 / / 09.12.2006
Здесь вот это предлогают!!!

Код:
CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable1
CMD.CommandText = "StoredProc1";
CMD.CommandType = adCmdStoredProc;
CMD.ActiveConnection = DB;
for(var rs = CMD.Execute(); !rs.EOF; rs.MoveNext())
{
%>Таблица 1: <%=rs("id").Value%><%
}

CMD = Server.CreateObject("ADODB.Command"); 'коннект к SQLtable2
CMD.CommandText = "StoredProc2";
CMD.CommandType = adCmdStoredProc;
CMD.ActiveConnection = DB;
for(var rs = CMD.Execute(); !rs.EOF; rs.MoveNext())
{
%>Таблица 2: <%=rs("id").Value%><%
}
12
09 января 2007 года
alekciy
3.0K / / 13.12.2005
dastrix
Сударь! Перестали бы вы красным цветом писать... нехорошо это. Красный де-факто цвет модератора ;) .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог