수고가 많으십니다.^^
<YesSpot JavaScript Code>
var ItemCode
var ItemVol
var ItemAvg
var ItemCrt
var ItemBPL
var ItemSPL
var d
function Main_OnStart()
{
Account1.Refresh();
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
ItemCode = Account1.Balance.code;
ItemVol = Account1.Balance.count;
ItemAvg = Account1.Balance.avgUnitCost;
ItemCrt = MarketData1.current;
ItemSPL = (ItemAvg - ItemCrt - 0.0003)*100000/1375;
var d = ItemSPL
Main.MessageList(typeof d)
Main.MessageList(d)
DataBase1.Inser*t("[NKD] VALUES(d)")
---------------------------------------------------------------------------------------
예스스팟에서 수익 또는 손실이 생기면(ItemSPL) 그것을 데이터베이스(MS SQL)에 삽입(Inser*t)하여 데이터를 갱신하는 코드를 작성하였습니다만...
예스스팟상에서
DataBase1.Inser*t("[NKD] VALUES(1)")와 같이 코드를 작성하면 1을 MS SQL에 삽입하나...
DataBase1.Inser*t("[NKD] VALUES(d)")를 실행하는경우 변수 d의 값을 MS SQL에 삽입하지 못합니다.
이것이 단순한 변수 d의 JavaScript(데이터 형식: number) 와 MS SQL (데이터 형식:decimal) 사이의 데이터 형식의 차이에 의한 것이라고도 생각해 보았으나 그것이 문제가 아닐수도 있겠다는 생각이 들었습니다.
1.결국은 예스스팟상에서 미들웨어( 다른 환경이지만 예를들어 PHP같은)를 통해 서버 사이드 데이터베이스에 접근을 하여야합니까?
2.아니면 위의 코드에서 자바스크립트상의 var d(변수)를 데이터베이스(MS SQL)에 바로 인식시켜 Inser*t 하고 Selec*t 하는 방법이 따로 있는것입니까?
3.위의 코드에서 var d를 MS SQL에 삽입하는 방법이 있으면 지도 부탁드립니다...
답변 2
변수 d 와 문자열 "d"를 혼동하셨군요.
var d = 99;
"abcd"
위의 두 문장에서 문자열 내의 d 가 변수인지 문자인지 판별할 수 있을까요?
문자열내의 텍스트는 그냥 문자일뿐이지요.
원하시는 대로 "abc99" 가 되려면 변수 d가 가지고 있는 값을 문자열에 붙혀야하지요.
"abc" + d
이렇게요.
자 그럼, "[NKD] VALUES(d)" 와 같은 문자열에서 문자 d의 위치에 변수 d의 값이 들어가게 연산해주면 되겠죠?
"[NKD] VALUES(" + d + ")"
이렇게 말이죠.
자바스크립트는 자바스크립트고 SQL은 SQL 일 뿐이지요.
스팟은 단순히 SQL문(자열)을 데이터베이스에 던져주는 것일 뿐이고요.
도움이 되셨길...
> 검시관덱스터 님이 쓴 글입니다.
> 제목 : YesSpot 에서 MS SQL 직접연결문제...
> 수고가 많으십니다.^^
<YesSpot JavaScript Code>
var ItemCode
var ItemVol
var ItemAvg
var ItemCrt
var ItemBPL
var ItemSPL
var d
function Main_OnStart()
{
Account1.Refresh();
Account1.SetBalanceItem(Main.GetOrderCode(MarketData1.code), 0);
ItemCode = Account1.Balance.code;
ItemVol = Account1.Balance.count;
ItemAvg = Account1.Balance.avgUnitCost;
ItemCrt = MarketData1.current;
ItemSPL = (ItemAvg - ItemCrt - 0.0003)*100000/1375;
var d = ItemSPL
Main.MessageList(typeof d)
Main.MessageList(d)
DataBase1.Inser*t("[NKD] VALUES(d)")
---------------------------------------------------------------------------------------
예스스팟에서 수익 또는 손실이 생기면(ItemSPL) 그것을 데이터베이스(MS SQL)에 삽입(Inser*t)하여 데이터를 갱신하는 코드를 작성하였습니다만...
예스스팟상에서
DataBase1.Inser*t("[NKD] VALUES(1)")와 같이 코드를 작성하면 1을 MS SQL에 삽입하나...
DataBase1.Inser*t("[NKD] VALUES(d)")를 실행하는경우 변수 d의 값을 MS SQL에 삽입하지 못합니다.
이것이 단순한 변수 d의 JavaScript(데이터 형식: number) 와 MS SQL (데이터 형식:decimal) 사이의 데이터 형식의 차이에 의한 것이라고도 생각해 보았으나 그것이 문제가 아닐수도 있겠다는 생각이 들었습니다.
1.결국은 예스스팟상에서 미들웨어( 다른 환경이지만 예를들어 PHP같은)를 통해 서버 사이드 데이터베이스에 접근을 하여야합니까?
2.아니면 위의 코드에서 자바스크립트상의 var d(변수)를 데이터베이스(MS SQL)에 바로 인식시켜 Inser*t 하고 Selec*t 하는 방법이 따로 있는것입니까?
3.위의 코드에서 var d를 MS SQL에 삽입하는 방법이 있으면 지도 부탁드립니다...
검시관덱스터
2018-01-16 08:41:21
몇 일 간 고민한 것이 단 몇 시간만에 해결되었습니다.
불꽃기사님 감사합니다.~~~~