我有一个查询,我在sql中使用XML.modify
将新节点插入到我的xml doc中
但是,我打印这个XML,我看到我的XML文档已更新,但没有任何内容保存在我的数据库中
我是否需要更新脚本才能使更改生效? (数据库中的列是text类型,但我将其转换为XML
答案 0 :(得分:1)
您可以按照以下方式修改列:
from pynput import keyboard
import pyaudio
import wave
CHUNK = 8192
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
WAVE_OUTPUT_FILENAME = "output.wav"
class MyListener(keyboard.Listener):
def __enter__(self):
self.p = pyaudio.PyAudio()
self.stream = self.p.open(format=FORMAT,
channels=CHANNELS,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
stream_callback = self.callback)
self.start()
return self
def __init__(self):
super(MyListener, self).__init__(on_press=self.on_press, on_release=self.on_release)
self.key_pressed = False
self.complete_tag = False
self.frames = []
def on_press(self, key):
if key == keyboard.Key.space:
self.key_pressed = True
def on_release(self, key):
if key == keyboard.Key.space:
self.key_pressed = False
self.complete = True
if key == keyboard.Key.esc:
return False
def callback(self,in_data, frame_count, time_info, status):
callback_flag = pyaudio.paContinue
if self.key_pressed:
self.frames.append(in_data)
if self.complete_tag:
callback_flag = pyaudio.paComplete
return in_data, callback_flag
def __exit__(self, exc_type, exc_value, traceback):
self.stream.stop_stream()
self.stream.close()
self.p.terminate()
self.stop()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(self.p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(self.frames))
wf.close()
with MyListener() as listener:
listener.join()
但是如果您将文档复制到变量,则必须按如下方式更新:
create table #t( id int, doc xml)
insert into #t(id,doc) values (1,'<a><b/></a>')
update #t set doc.modify( 'delete /a/b' ) where id = 1
select doc from #t