SQL Server 어댑터

6418 단어 vim-dadbod

묘사

이건 정말 봉합하기 쉬워요.유일한 문제는 내가 그것을 테스트할 방법이 없다는 것이다.
사람들은 docker에서 SQL 서버를 실행할 수 있습니다.
이번 주말에 시간 나면 해볼게요.만약 버그가 있다면, 나는pull 요청을 제출할 것입니다. 그렇지 않으면 그것이 유효하다고 생각할 것입니다.

토론 #1

Linux-https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools
osql 대신 Sqlcmd를 사용해야 합니다. Sqlcmd는 크로스플랫폼

토론 #2

에서

토론 #셋

으로 편집된 것이지 sqlcmd 으로 편집된 것이 아닙니다.
@denzuko가 적극적인 확인을 제공할 수 있다면 osql:DB sqlserver://...를 동시에 사용할 수 있다면 좋겠습니다.:DB sqlserver://... select 1@tpope는

토론 #4

:DB sqlserver://...에 대해 두 번째 cmd 창을 닫고 열었습니다. 명령은 영원히 완성되지 않습니다.
cmd 창의 내용:
if exists('g:autoloaded_db_adapter_sqlserver')
  finish
endif
let g:autoloaded_db_adapter_sqlserver = 1

function! db#adapter#sqlserver#canonicalize(url) abort
  let url = a:url
  if url =~# ';.*=' && url !~# '?'
    let url = tr(substitute(substitute(url, ';', '?', ''), ';$', '', ''), ';', '&')
  endif
  return db#url#absorb_params(url, {
        \ 'user': 'user',
        \ 'userName': 'user',
        \ 'password': 'password',
        \ 'server': 'host',
        \ 'serverName': 'host',
        \ 'port': 'port',
        \ 'portNumber': 'port',
        \ 'database': 'database',
        \ 'databaseName': 'database'})
endfunction

function! db#adapter#sqlserver#interactive(url) abort
  return 'sqlcmd' . db#url#as_args(a:url, '-S ', '', '', '-U ', '-P ', '-d ')
endfunction
:DB sqlserver://... select 1 변체를 사용할 때, 나는 cmd 창의 일반적인 깜박임을 받고,vim8 메시지에서 다음과 같은 정보를 얻을 수 있다.
C:\WINDOWS\system32\cmd.exe /c (sqlcmd -S ^"database-server^" -U ^"UserName^" -P ^"password^" ^<C:\Users\MyUser\AppData\Local\Temp\VIi378E.tmp ^> C:\Users\MyUser\AppData\Local\Temp\VIo379F.tmp 2^>^&1)
osql 마운트된 창은 입력을 기다리기 위해 마운트될 수 있습니다.

토론 #5

사례에서 공백이지만 인터랙티브 사례에서 힌트나 다른 것을 보고 싶습니다.보아하니 네가 보여준 것은 전자의 출력인 것 같은데, 너는 나에게 후자의 출력을 보여줄 수 있니?select 1는 일반적으로 출력이 포획되지 않았다는 것을 의미한다. 포탄이 폭발했기 때문에 시스템에 실행 가능한 파일이 없기 때문일 수 있다.
당신은 다른 어댑터가 정상적으로 작동하는지 확인할 수 있습니까?Can't open fileneovim을 사용하여 osql를 윈도우즈에서 일하게 할 수 있습니다.왜 sqlcmd가 작동하지 않는지, 호출된 명령 문자열을 공개할 방법이 있는지 알아보려고 노력하고 있습니다.마지막으로 신뢰할 수 있는 신분 검증 표지를 공개할 방법이 없을까?osql 명령줄을 보기 위해

토론 #6

를 호출할 수 있습니다.
신뢰할 수 있는 신분 검증에 대해 사용자 이름을 제공하지 않으면 우리는 자동으로 통과할 수 있습니까

토론 #7

?우리는 명확한 표지를 추가할 수 있지만, 가능하다면, 나는 차라리 좀 총명하고 싶다.:echo db#adapter#sqlserver#interactive("sqlserver://...") 내가 언급해야 할 것은 내가 내 시스템에서 -E

토론 #8

를 검증했고 그것을 실행했으며neovim 이외에 그것들을 사용하여 이 두 개의 테스트 조회를 실행했다.
나는 곧 다른 건의를 연구할 것이다.osql네.sqlcmd 변체는 윈도우즈의neovim에서 매우 효과적이다.사실은 내가 어제vim8에서 시험해 보았지만 의식하지 못했다는 것을 증명한다.vim8의

토론 #9

변체는 내가 위의 첫 번째 평론에서 묘사한 문제가 존재한다.
나 오늘 시간 없어.만약 네가 내일도 해결 방안을 개발하고 있다면, 나는 철저하게 시험적으로 사용할 것이다. osql. 아마도 약간의 디버깅을 진행할 것이다.osql 기본값을 추천하려고 하는데, linux가 이 문제를 어떻게 처리할지 확실하지 않습니다.
상호 작용 모드를 통해 실행
두 번의 처결은 모두 같다.sqlcmd나는 왜 osql에만 적용되는지 잘 모르겠다. 왜냐하면 이 두 언어의 예상 실행은 모두 서버를 분리하고 다음과 같은 조회를 해야 하기 때문이다.

토론 #10

또한 sqlcmd를 사용할 때 연결을 시작하지만 명령을 전달하지 않을 경우 서버 연결을 분석해 이를 확인할 수 있습니다.[command] -S "[Servername] SELECT 1" -U"[...]" -P"[...]"는 URL만 [command] -S "[Servername]" -Q"SELECT 1" -U"[...]" -P"[...]"에 전달하고 조회는 표준에 제공된다.

토론 #11

를 사용하여 테스트를 진행합니다.
우리는 db#adapter#sqlserver#interactive Windows로 제한하거나, 이 문제를 아예 무시할 수 있습니다. 신뢰할 수 있는 연결을 사용할 수 없다면, 사용자 이름을 생략하는 것은 무의미하기 때문입니다.echo "SELECT 1" | sqlcmd ... 나는 이 문제를 무시하자고 주장한다. linux나macOS 컴퓨터를 실행하는 신분을 검증하기 위해서는 매우 간단해 보이는 추가 설정 파일이 필요하다.
https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/using-integrated-authentication#authenticating-a-linux-or-macos-computer-with-active-directory
아마도 나는 URL을 전달하면 상응하는 연결 문자열이 생길 것이다. 명령이 무엇이든지 똑같은 것을 구축하고 있다. 이것은 내가 보려고 하는 다음 단계이다.-E답변:

토론 #12

명령줄에서 실행:echo db#adapter#sqlserver#interactive("sqlserver://[]:[]@[Servername]")image
어떤 이유로든지, 내가db라고 생각하는 범위 내에서, 그것들의 해석은 다르다.윌.내가 틀렸을지도 모르지만, URL이 전달되었을 때, 정상적인exp 교체가 발생했는지 여부입니다.
지휘부: [sqlcmd/osql] -S"[Servername]" -U"..." -P"..."파일 내용: echo SELECT 1 | [osql/sqlcmd] -S"[Servername]" -U"..." -P"..."아마 이것은 나의 이해 범위를 좀 초과한 것 같다.우리는 DB sqlserver://[...]:[...]@[Servername] < test.sql부터 시작할 수 있는데, 전제는 이것이 모든 사람에게 효과가 있다는 것이다.SELECT 1와 달리

토론 #13

의 한 버전은 osql과 함께 사용할 수 있기 때문에 반대 의견을 제외하고는 더 좋은 선택이라고 생각하는 경향이 있다.sqlcmd 내일 OSX 버전을 시도해 보겠습니다. 연결할 수 있는 ql 서버가 있기 때문입니다.나는 또한 sqlcmd 파라미터를 연구할 것이다.내 경험에 따르면 이 두 명령의 기능은 매우 비슷하다.다만 osql은 SQLServer2000과 함께, sqlcmd는 SQLServer2005와 함께 선보인다.마이크로소프트는 정말 전 세대만 더 지원하고 싶어 하는 것 같다.만약 내가 일을 시작한다면, 나는pull 요청osql을 해도 OS X에서 해야 한다는 것을 의식하지 못할 것이다. - E는 그들이 Kerberos 신분 검증을 필요로 하는 것을 의식하지 못할 것이다.이전 SQL Server 구현 과정에서 몇 가지 문제가 발생했습니다.FreeTDS가 좋은 선택일 수도 있다apt install freetds-bin의 절반은

토론 #14

on UNIX is broken
에 있다.나는

토론 #15

로 이 문제를 해결할 수 있지만, 이것은

토론 #16

(어쨌든freetds버전)을 파괴할 뿐만 아니라, 나를 어리석은 특례에 빠지게 할 것이다.
어쨌든 sqlcmd분지를 시험해 보세요.그것의 장비는 어떤 명령과 협조해서 사용할 수 있지만, 나는 차라리 발표하기 전에 한 방면을 선택하는 것이 낫다고 생각한다.

좋은 웹페이지 즐겨찾기