>  기사  >  웹 프론트엔드  >  javascript_javascript 기술을 사용하여 액세스 데이터베이스에 연결하는 방법

javascript_javascript 기술을 사용하여 액세스 데이터베이스에 연결하는 방법

WBOY
WBOY원래의
2016-05-16 19:24:101315검색

방금 친구가 자바스크립트로 엑셀 데이터베이스에 접속하는 프로그램을 봤는데, 액세스 데이터베이스로 바꾸고 싶어서 이 두 글을 발견했습니다
———————————— ———————————— ----------------------------
수고가 많았습니다 지난 며칠 동안 자바스크립트를 인터넷의 액세스 데이터베이스에 연결하는 방법을 찾아
정렬하고 요약한 끝에 드디어 효과적으로 실행할 수 있는 코드를 작성했습니다.

하지만 이 코드는 로컬에서는 정상적으로 실행이 가능하지만, 일단 자유로운 개인 공간에 배치되면 실행이 불가능합니다. 주된 이유는 정적 페이지만 지원하는 대부분의 여유 공간 때문에 작업 권한이 부족하기 때문입니다.
은 매우 엄격한 제한을 두었기 때문에 mdb를 사용하든 일반 텍스트 파일을 읽고 쓰든
은 통과할 수 없으며 페이지에서 js 오류가 보고됩니다. 해외 일부 여유 공간에서는 mdb
같은 확장자를 가진 파일 업로드를 직접적으로 금지하고 있습니다.

순전히 정적인 페이지의 여유 공간에 자신만의 카운터나 게시판을 만들 수는 없지만
이 프로그램은 일부 친구들에게는 여전히 유용할 수 있으므로 공부할 수 있도록 작성했습니다.

파일 구성:
Access 데이터베이스의 이름은 MyData.Mdb이고 그 안에 count라는 테이블이 내장되어 있습니다. 테이블은 ID와 COUNT라는 두 개의
필드로 구성되며 조각이 있습니다. 테이블의 데이터 수: ('count','100').
텍스트 파일은 count.txt이며, 그 안에 숫자가 적혀 있습니다.
정적 페이지의 이름은 Cnt.htm입니다.
위 3개 파일은 같은 디렉토리에 있습니다.

Access 데이터베이스를 사용하며 비표준 SQL 구문을 사용하므로 테이블 이름
및 필드 이름: []
다음은 페이지 코드에서 가져온 것입니다.

getCountFromDB 메서드는 Access 데이터베이스에서 작동하고 getCountFromTxt
메서드는 txt 일반 텍스트에서 작동합니다. 두 메서드 모두 로컬에서 실행됩니다.



코드 복사 코드는 다음과 같습니다.


;/TITLE> <br><META NAME="Generator" CONTENT="EditPlus"> <br><META NAME="Author" CONTENT=""> <br><META NAME="키워드" CONTENT=""> <br><META NAME="Description" CONTENT=""> <br><SCRIPT LANGUAGE="JavaScript"> <br><!-- <BR>함수 getCountFromDB( ) { <BR> //현재 페이지 파일을 기준으로 파일이 위치한 절대 경로를 찾습니다. <BR> var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm")); <BR> var path = filePath "MyData.mdb" <BR> //문자열 제거 "files://"의 처음 8자. <BR> path = path.substring(8); <BR> var updateCnt = 0; <BR><br> //쿼리 및 업데이트를 위한 SQL 문을 생성합니다. <br> var sqlSelCnt = "ID = 'count'에서 COUNT 선택"; <BR> var sqlUpdCnt = "[COUNT] SET [COUNT] = '" 업데이트 <BR><br> // 연결하고 관련 문자열 www.knowsky.com을 생성합니다. <br> var con = new ActiveXObject("ADODB.Connection"); <BR> con.Provider = "Microsoft.Jet.OLEDB.4.0"; <BR> con.ConnectionString = "데이터 소스=" 경로; <BR> con.open; <br> var rs = new ActiveXObject("ADODB.Recordset") <br> rs.open(sqlSelCnt, con) <BR> while (!rs.eof) { <BR> var cnt = rs.Fields("COUNT"); <BR> document.write(cnt) <BR> //결과에 1을 추가하고 데이터베이스를 업데이트합니다. <BR> updateCnt = cnt * 1 1; <BR> rs.moveNext; <BR> } <BR> rs.close(); <BR> rs = null; " ; <BR> con.execute(sqlUpdCnt); <BR><br> con.close(); <br> con = null; <BR>} <br><br>function getCountFromTxt() { <BR> var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm")) <BR> var path = filePath "count.txt"; <br> path = path.substring(8); 🎜 > var nextCnt = 0; <br><BR> var fso, f1, ts, s <BR> //텍스트 파일을 읽기 전용 모드로 엽니다. <BR> var ForReading = 1; <BR> //텍스트 파일을 읽기 및 쓰기 모드로 엽니다.<BR> var ForWriting = 2; <br><br> fso = new ActiveXObject("Scripting.FileSystemObject"); <BR> f1 = fso.GetFile(path) <BR> ts = f1.OpenAsTextStream(ForReading, true ); <BR> s = ts.ReadLine(); <BR> nextCnt = eval(s) 1; document.write("현재 개수:" s); 🎜><BR> ts = f1.OpenAsTextStream(ForWriting, true); <BR> ts.WriteLine(nextCnt) <br> ts.close() <br>//--> ></SCRIPT> <br></HEAD> <br><br><BODY> <br><SCRIPT LANGUAGE="JavaScript"> <br><-- <BR>getCountFromTxt ); <br>//--> <br></BODY> <br></HTML><br> <br><br> 정적 페이지를 위한 공간은 없지만 <br>Asp를 지원하는 여유 공간은 있어야 한다고 생각합니다. 물론 직접 시도해본 적은 없고 상상만 하고 있습니다. <br>그리고 이 방법을 사용하여 데이터베이스를 읽고 쓰는 것은 <br> 기밀이 필요하지 않은 카운터 및 게시판과 같은 작업에만 적합합니다. 결국 코드는 모두 자바스크립트로 작성되어 누구나 볼 수 있습니다. >그러면 분석을 위해 db 파일을 다운로드할 수 있는 경로를 얻을 수 있으므로 </div>다른 사람에게 알리고 싶지 않은 내용을 저장하는 데 사용할 수 없습니다. <br>제 동료 중 한 명이 말했듯이, 작업을 위해 데이터베이스에 연결하기 위해 자바스크립트를 사용하는 것은 단순한 단계입니다. 하하, 여유 공간을 사용하여 자신만의 카운터를 만들 수 없기 때문에 이 코드만 사용할 수 있습니다. 재미를 위해 그리고 자신에 대한 좋은 느낌을 찾기 위해. <br>---------------------------------- --<br>온라인상의 많은 친구들은 특정 문제를 해결할 때 매우 혼란스럽다고 느끼고, 많은 사람들은 JavaScript를 사용하여 데이터베이스에 연결하는 방법을 이해하기 어렵다고 생각합니다. 그들은 심지어 JavaScript를 통해서만 실행할 수 있다고 결론을 내립니다. 그리고 검색해 보니 CSDN의 소개가 초보자에게는 너무 일반적인 내용이어서 다른 포럼에서는 검색해 본 적이 없습니다. 이런 상황에서 MSDN을 잘 살펴보기로 했고, VC의 데이터베이스 연결 사례를 살펴본 후 JAVASCRIPT를 사용하여 데이터베이스에 연결하는 방법을 정리했습니다<br><br><br><br><br> <br>코드 복사<br><br><br> 코드는 다음과 같습니다.<br><br><script 언어=javascript> _^ <div class="codetitle"><span>// <a style="CURSOR: pointer" data="75002" class="copybut" id="copybut75002" onclick="doCopy('code75002')"><u>//(c) in 2002-2003 by Alex(중국어: Jiang Jianhua) </u></a>//http://www.finder.net .cn </span></div>//C 이메일 : jiangjh@finder.net.cn <div class="codebody" id="code75002"> <br>//F 이메일 : jjh_115@eyou.com <br><br></script> <br><script 언어=javascript> <br><br>function replacement(v) <br><br>{ <br><br>//내결함성 문제는 스스로 판단하시기 바랍니다. <br><br>//SQL 문 정의 <br><br>var sql = "select * from Dictionary where MainID='" v "'" ; <br><br>//새 데이터베이스 연결 개체를 생성하고 데이터 세트 액세스 객체 <br><br>var ConnDB = new ActiveXObject("adodb.connection"); <br><br>var rs = new ActiveXObject("ADODB.Recordset") <br><br>// 여기에 연결할 DSN을 입력하세요 <br><br>ConnDB.ConnectionString="DSN=***;uid=***;pwd=***" <br><br>ConnDB.open <br> <br>rs.open(sql,ConnDB,1,1); <br><br>if (rs.RecordCount>0){ <br><br>if (v==parseInt(rs("MainID") )) { <br><br>//문자열 연결 <br><br>document.all('txt').value = v rs("MainValue") <br><br>var sql=null <br><br>rs.close <br><br>ConnDB.close <br><br>return; <br><br>} else { <br><br>var <br><br> 경고("해당 코드명이 없습니다!"); <br><br>txt.focus() <br><br>rs.close <br><br> ConnDB .close <br><br>} <br><br>} <br><br></script> <br><br><input type=text id=txt name=txt onblur="replace ( this.value)"> <br> </div></span></div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>성명:</span><div>본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.</div></div></div><div class="nphpSytBox"><span>이전 기사:<a class="dBlack" title="자바스크립트 함수 자세히_기본지식" href="http://m.php.cn/ko/faq/26912.html">자바스크립트 함수 자세히_기본지식</a></span><span>다음 기사:<a class="dBlack" title="자바스크립트 함수 자세히_기본지식" href="http://m.php.cn/ko/faq/26914.html">자바스크립트 함수 자세히_기본지식</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>관련 기사</h2><em><a href="http://m.php.cn/ko/article.html" class="bBlack"><i>더보기</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ko/faq/1609.html" title="Bootstrap 목록 그룹 구성 요소에 대한 심층 분석" class="aBlack">Bootstrap 목록 그룹 구성 요소에 대한 심층 분석</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1640.html" title="JavaScript 함수 커링에 대한 자세한 설명" class="aBlack">JavaScript 함수 커링에 대한 자세한 설명</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/1949.html" title="JS 비밀번호 생성 및 강도 감지의 전체 예(데모 소스 코드 다운로드 포함)" class="aBlack">JS 비밀번호 생성 및 강도 감지의 전체 예(데모 소스 코드 다운로드 포함)</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/2248.html" title="Angularjs는 WeChat UI(weui)를 통합합니다." class="aBlack">Angularjs는 WeChat UI(weui)를 통합합니다.</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ko/faq/2351.html" title="JavaScript를 사용하여 중국어 번체와 중국어 간체 간을 빠르게 전환하는 방법과 중국어 간체와 중국어 번체 간 전환을 지원하는 웹사이트의 요령_javascript 기술" class="aBlack">JavaScript를 사용하여 중국어 번체와 중국어 간체 간을 빠르게 전환하는 방법과 중국어 간체와 중국어 번체 간 전환을 지원하는 웹사이트의 요령_javascript 기술</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!</p></div><div class="footermid"><a href="http://m.php.cn/ko/about/us.html">회사 소개</a><a href="http://m.php.cn/ko/about/disclaimer.html">부인 성명</a><a href="http://m.php.cn/ko/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>